diff --git a/cli/asc.js b/cli/asc.js index 1cd4b066..de2f71ec 100644 --- a/cli/asc.js +++ b/cli/asc.js @@ -441,6 +441,7 @@ exports.main = function main(argv, options, callback) { assemblyscript.setImportMemory(compilerOptions, args.importMemory); assemblyscript.setSharedMemory(compilerOptions, args.sharedMemory); assemblyscript.setImportTable(compilerOptions, args.importTable); + assemblyscript.setExplicitStart(compilerOptions, args.explicitStart); assemblyscript.setMemoryBase(compilerOptions, args.memoryBase >>> 0); assemblyscript.setSourceMap(compilerOptions, args.sourceMap != null); assemblyscript.setOptimizeLevelHints(compilerOptions, optimizeLevel, shrinkLevel); diff --git a/cli/asc.json b/cli/asc.json index 5cd43054..2c98bb24 100644 --- a/cli/asc.json +++ b/cli/asc.json @@ -129,6 +129,11 @@ "type": "b", "default": false }, + "explicitStart": { + "description": "Exports an explicit start function to be called manually.", + "type": "b", + "default": false + }, "lib": { "description": [ "Adds one or multiple paths to custom library components and", diff --git a/lib/loader/README.md b/lib/loader/README.md index 519d101d..25efbf88 100644 --- a/lib/loader/README.md +++ b/lib/loader/README.md @@ -100,6 +100,9 @@ Besides demangling classes exported from your entry file to a handy object struc var value = module.F64[ptr >>> 3]; ``` +* **__start**(): `void`
+ Explicit start function if the `--explicit-start` option is used. Must be called before any other exports if present. + * **__allocString**(str: `string`): `number`
Allocates a new string in the module's memory and returns a reference (pointer) to it. diff --git a/lib/loader/index.d.ts b/lib/loader/index.d.ts index 8d898cbd..fa239e99 100644 --- a/lib/loader/index.d.ts +++ b/lib/loader/index.d.ts @@ -43,6 +43,8 @@ interface ASUtil { readonly F32: Float32Array; /** A 64-bit float view on the memory. */ readonly F64: Float64Array; + /** Explicit start function, if requested. */ + __start(): void; /** Allocates a new string in the module's memory and returns a reference (pointer) to it. */ __allocString(str: string): number; /** Reads (copies) the value of a string from the module's memory. */ diff --git a/src/ast.ts b/src/ast.ts index c6868ccb..e833ca44 100644 --- a/src/ast.ts +++ b/src/ast.ts @@ -1184,7 +1184,6 @@ export enum DecoratorKind { EXTERNAL, BUILTIN, LAZY, - START, UNSAFE } @@ -1221,7 +1220,6 @@ export function decoratorNameToKind(name: Expression): DecoratorKind { } case CharCode.s: { if (nameStr == "sealed") return DecoratorKind.SEALED; - if (nameStr == "start") return DecoratorKind.START; break; } case CharCode.u: { diff --git a/src/compiler.ts b/src/compiler.ts index b1cd00c9..7c9e5e52 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -193,6 +193,8 @@ export class Options { importTable: bool = false; /** If true, generates information necessary for source maps. */ sourceMap: bool = false; + /** If true, generates an explicit start function. */ + explicitStart: bool = false; /** Static memory start offset. */ memoryBase: i32 = 0; /** Global aliases. */ @@ -366,10 +368,21 @@ export class Compiler extends DiagnosticEmitter { } } - // compile the start function if not empty or called by main - var hasExplicitStart = program.explicitStartFunction !== null; - if (startFunctionBody.length || hasExplicitStart) { + // compile the start function if not empty or explicitly requested + var startIsEmpty = !startFunctionBody.length; + var explicitStart = options.explicitStart; + if (!startIsEmpty || explicitStart) { let signature = startFunctionInstance.signature; + if (!startIsEmpty && explicitStart) { + module.addGlobal(BuiltinSymbols.started, NativeType.I32, true, module.i32(0)); + startFunctionBody.unshift( + module.if( + module.global_get(BuiltinSymbols.started, NativeType.I32), + module.return(), + module.global_set(BuiltinSymbols.started, module.i32(1)) + ) + ); + } let funcRef = module.addFunction( startFunctionInstance.internalName, this.ensureFunctionType( @@ -381,7 +394,8 @@ export class Compiler extends DiagnosticEmitter { module.block(null, startFunctionBody) ); startFunctionInstance.finalize(module, funcRef); - if (!hasExplicitStart) module.setStart(funcRef); + if (!explicitStart) module.setStart(funcRef); + else module.addFunctionExport(startFunctionInstance.internalName, "__start"); } // compile runtime features @@ -1149,23 +1163,6 @@ export class Compiler extends DiagnosticEmitter { } } - // make the main function call `start` implicitly, but only once - if (instance.prototype == this.program.explicitStartFunction) { - module.addGlobal(BuiltinSymbols.started, NativeType.I32, true, module.i32(0)); - stmts.unshift( - module.if( - module.unary( - UnaryOp.EqzI32, - module.global_get(BuiltinSymbols.started, NativeType.I32) - ), - module.block(null, [ - module.call("start", null, NativeType.None), - module.global_set(BuiltinSymbols.started, module.i32(1)) - ]) - ) - ); - } - // make constructors return their instance pointer if (instance.is(CommonFlags.CONSTRUCTOR)) { let nativeSizeType = this.options.nativeSizeType; diff --git a/src/index.ts b/src/index.ts index bd4cdee0..eabe27f9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -99,6 +99,11 @@ export function setGlobalAlias(options: Options, name: string, alias: string): v globalAliases.set(name, alias); } +/** Sets the `explicitStart` option. */ +export function setExplicitStart(options: Options, explicitStart: bool): void { + options.explicitStart = explicitStart; +} + /** Sign extension operations. */ export const FEATURE_SIGN_EXTENSION = Feature.SIGN_EXTENSION; /** Mutable global imports and exports. */ diff --git a/src/program.ts b/src/program.ts index 9186d169..9fd16a66 100644 --- a/src/program.ts +++ b/src/program.ts @@ -321,8 +321,6 @@ export class Program extends DiagnosticEmitter { nativeSource: Source; /** Special native code file. */ nativeFile: File; - /** Explicitly annotated start function. */ - explicitStartFunction: FunctionPrototype | null = null; // lookup maps @@ -1663,11 +1661,6 @@ export class Program extends DiagnosticEmitter { validDecorators |= DecoratorFlags.GLOBAL; } } - if (!declaration.is(CommonFlags.GENERIC)) { - if (parent.kind == ElementKind.FILE && (parent).source.isEntry) { - validDecorators |= DecoratorFlags.START; - } - } var element = new FunctionPrototype( name, parent, @@ -1675,14 +1668,6 @@ export class Program extends DiagnosticEmitter { this.checkDecorators(declaration.decorators, validDecorators) ); if (!parent.add(name, element)) return null; - if (element.hasDecorator(DecoratorFlags.START)) { - if (this.explicitStartFunction) { - this.error( - DiagnosticCode.Module_cannot_have_multiple_start_functions, - assert(findDecorator(DecoratorKind.START, declaration.decorators)).range - ); - } else this.explicitStartFunction = element; - } return element; } @@ -1921,10 +1906,8 @@ export enum DecoratorFlags { BUILTIN = 1 << 8, /** Is compiled lazily. */ LAZY = 1 << 9, - /** Is the explicit start function. */ - START = 1 << 10, /** Is considered unsafe code. */ - UNSAFE = 1 << 11 + UNSAFE = 1 << 10 } /** Translates a decorator kind to the respective decorator flag. */ @@ -1941,7 +1924,6 @@ export function decoratorKindToFlag(kind: DecoratorKind): DecoratorFlags { case DecoratorKind.EXTERNAL: return DecoratorFlags.EXTERNAL; case DecoratorKind.BUILTIN: return DecoratorFlags.BUILTIN; case DecoratorKind.LAZY: return DecoratorFlags.LAZY; - case DecoratorKind.START: return DecoratorFlags.START; case DecoratorKind.UNSAFE: return DecoratorFlags.UNSAFE; default: return DecoratorFlags.NONE; } diff --git a/tests/compiler.js b/tests/compiler.js index e0ca9bb6..7db6ee91 100644 --- a/tests/compiler.js +++ b/tests/compiler.js @@ -351,10 +351,9 @@ function testInstantiate(basename, binaryBuffer, name) { "var": 3 } }).exports; - if (exports.main) { - console.log(colorsUtil.white(" [main]")); - let code = exports.main(); - console.log(colorsUtil.white(" [exit " + code + "]\n")); + if (exports.__start) { + console.log(colorsUtil.white(" [start]")); + exports.__start(); } }); let leakCount = rtr.check(); diff --git a/tests/compiler/main.json b/tests/compiler/main.json deleted file mode 100644 index b1da366f..00000000 --- a/tests/compiler/main.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "asc_flags": [ - "--runtime none" - ] -} \ No newline at end of file diff --git a/tests/compiler/main.optimized.wat b/tests/compiler/main.optimized.wat deleted file mode 100644 index 069143d9..00000000 --- a/tests/compiler/main.optimized.wat +++ /dev/null @@ -1,23 +0,0 @@ -(module - (type $FUNCSIG$v (func)) - (type $FUNCSIG$iii (func (param i32 i32) (result i32))) - (memory $0 0) - (global $main/code (mut i32) (i32.const 0)) - (global $~lib/started (mut i32) (i32.const 0)) - (export "memory" (memory $0)) - (export "main" (func $main/main)) - (func $main/main (; 0 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/started - i32.eqz - if - i32.const 1 - global.set $main/code - i32.const 1 - global.set $~lib/started - end - global.get $main/code - ) - (func $null (; 1 ;) (type $FUNCSIG$v) - nop - ) -) diff --git a/tests/compiler/main.ts b/tests/compiler/main.ts deleted file mode 100644 index 391e22b9..00000000 --- a/tests/compiler/main.ts +++ /dev/null @@ -1,7 +0,0 @@ -var code = 0; -code = 1; - -@start -export function main(argc: i32, argv: usize): i32 { - return code; -} diff --git a/tests/compiler/main.untouched.wat b/tests/compiler/main.untouched.wat deleted file mode 100644 index b232da54..00000000 --- a/tests/compiler/main.untouched.wat +++ /dev/null @@ -1,30 +0,0 @@ -(module - (type $FUNCSIG$v (func)) - (type $FUNCSIG$iii (func (param i32 i32) (result i32))) - (memory $0 0) - (table $0 1 funcref) - (elem (i32.const 0) $null) - (global $main/code (mut i32) (i32.const 0)) - (global $~lib/started (mut i32) (i32.const 0)) - (export "memory" (memory $0)) - (export "main" (func $main/main)) - (func $start:main (; 0 ;) (type $FUNCSIG$v) - i32.const 1 - global.set $main/code - ) - (func $main/main (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/started - i32.eqz - if - call $start - i32.const 1 - global.set $~lib/started - end - global.get $main/code - ) - (func $start (; 2 ;) (type $FUNCSIG$v) - call $start:main - ) - (func $null (; 3 ;) (type $FUNCSIG$v) - ) -) diff --git a/tests/compiler/retain-release-sanity.optimized.wat b/tests/compiler/retain-release-sanity.optimized.wat index 1aaa5944..734e6095 100644 --- a/tests/compiler/retain-release-sanity.optimized.wat +++ b/tests/compiler/retain-release-sanity.optimized.wat @@ -33,9 +33,8 @@ (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) (global $~lib/rt/pure/END (mut i32) (i32.const 0)) (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) - (global $~lib/started (mut i32) (i32.const 0)) (export "memory" (memory $0)) - (export "main" (func $retain-release-sanity/main)) + (start $start) (func $~lib/rt/tlsf/removeBlock (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -2601,14 +2600,8 @@ call $~lib/rt/pure/__release call $~lib/rt/pure/__collect ) - (func $retain-release-sanity/main (; 42 ;) (type $FUNCSIG$v) - global.get $~lib/started - i32.eqz - if - call $start:retain-release-sanity - i32.const 1 - global.set $~lib/started - end + (func $start (; 42 ;) (type $FUNCSIG$v) + call $start:retain-release-sanity ) (func $~lib/rt/pure/__visit (; 43 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 diff --git a/tests/compiler/retain-release-sanity.ts b/tests/compiler/retain-release-sanity.ts index efb07749..b46f26d9 100644 --- a/tests/compiler/retain-release-sanity.ts +++ b/tests/compiler/retain-release-sanity.ts @@ -1,4 +1,3 @@ -@start export function main(): void {} { let arr: i32[] = new Array(3); arr.push(123); diff --git a/tests/compiler/retain-release-sanity.untouched.wat b/tests/compiler/retain-release-sanity.untouched.wat index 529966f6..9a6e9bc7 100644 --- a/tests/compiler/retain-release-sanity.untouched.wat +++ b/tests/compiler/retain-release-sanity.untouched.wat @@ -36,11 +36,10 @@ (global $~lib/rt/pure/END (mut i32) (i32.const 0)) (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $~lib/started (mut i32) (i32.const 0)) (global $~lib/rt/__rtti_base i32 (i32.const 680)) (global $~lib/heap/__heap_base i32 (i32.const 748)) (export "memory" (memory $0)) - (export "main" (func $retain-release-sanity/main)) + (start $start) (func $~lib/rt/tlsf/removeBlock (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -4537,22 +4536,13 @@ end call $~lib/rt/pure/__collect ) - (func $retain-release-sanity/main (; 48 ;) (type $FUNCSIG$v) - global.get $~lib/started - i32.eqz - if - call $start - i32.const 1 - global.set $~lib/started - end - ) - (func $start (; 49 ;) (type $FUNCSIG$v) + (func $start (; 48 ;) (type $FUNCSIG$v) call $start:retain-release-sanity ) - (func $~lib/array/Array#__visit_impl (; 50 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 49 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/__visit (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 50 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4706,7 +4696,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4744,7 +4734,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__visit_impl (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__visit_impl (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4782,7 +4772,7 @@ end end ) - (func $~lib/rt/__visit_members (; 54 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block @@ -4896,6 +4886,6 @@ end unreachable ) - (func $null (; 55 ;) (type $FUNCSIG$v) + (func $null (; 54 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/retain-release.json b/tests/compiler/retain-release.json index b1da366f..bf222c4d 100644 --- a/tests/compiler/retain-release.json +++ b/tests/compiler/retain-release.json @@ -1,5 +1,6 @@ { "asc_flags": [ - "--runtime none" + "--runtime none", + "--explicitStart" ] } \ No newline at end of file diff --git a/tests/compiler/retain-release.optimized.wat b/tests/compiler/retain-release.optimized.wat index 49aafa76..dec4930c 100644 --- a/tests/compiler/retain-release.optimized.wat +++ b/tests/compiler/retain-release.optimized.wat @@ -17,6 +17,8 @@ (global $retain-release/glo (mut i32) (i32.const 0)) (global $retain-release/TARGET (mut i32) (i32.const 0)) (global $~lib/argc (mut i32) (i32.const 0)) + (global $~lib/started (mut i32) (i32.const 0)) + (export "__start" (func $start)) (export "memory" (memory $0)) (export "returnRef" (func $retain-release/returnRef)) (export "receiveRef" (func $retain-release/receiveRef)) @@ -52,7 +54,6 @@ (export "provideRefIndirect" (func $retain-release/provideRefIndirect)) (export "receiveRefIndirect" (func $retain-release/receiveRefIndirect)) (export "receiveRefIndirectDrop" (func $retain-release/receiveRefIndirect)) - (start $start) (func $~lib/rt/stub/__alloc (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -206,6 +207,13 @@ ) (func $start (; 15 ;) (type $FUNCSIG$v) (local $0 i32) + global.get $~lib/started + if + return + else + i32.const 1 + global.set $~lib/started + end i32.const 96 global.set $~lib/rt/stub/startOffset global.get $~lib/rt/stub/startOffset diff --git a/tests/compiler/retain-release.untouched.wat b/tests/compiler/retain-release.untouched.wat index 88c66e38..d9f9fd3d 100644 --- a/tests/compiler/retain-release.untouched.wat +++ b/tests/compiler/retain-release.untouched.wat @@ -17,7 +17,9 @@ (global $retain-release/glo (mut i32) (i32.const 0)) (global $retain-release/TARGET (mut i32) (i32.const 0)) (global $~lib/argc (mut i32) (i32.const 0)) + (global $~lib/started (mut i32) (i32.const 0)) (global $~lib/heap/__heap_base i32 (i32.const 92)) + (export "__start" (func $start)) (export "memory" (memory $0)) (export "returnRef" (func $retain-release/returnRef)) (export "receiveRef" (func $retain-release/receiveRef)) @@ -53,7 +55,6 @@ (export "provideRefIndirect" (func $retain-release/provideRefIndirect)) (export "receiveRefIndirect" (func $retain-release/receiveRefIndirect)) (export "receiveRefIndirectDrop" (func $retain-release/receiveRefIndirectDrop)) - (start $start) (func $~lib/rt/stub/__alloc (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -666,6 +667,13 @@ call $~lib/rt/stub/__release ) (func $start (; 41 ;) (type $FUNCSIG$v) + global.get $~lib/started + if + return + else + i32.const 1 + global.set $~lib/started + end call $start:retain-release ) (func $null (; 42 ;) (type $FUNCSIG$v) diff --git a/tests/compiler/rt/instanceof.json b/tests/compiler/rt/instanceof.json index b1da366f..bf222c4d 100644 --- a/tests/compiler/rt/instanceof.json +++ b/tests/compiler/rt/instanceof.json @@ -1,5 +1,6 @@ { "asc_flags": [ - "--runtime none" + "--runtime none", + "--explicitStart" ] } \ No newline at end of file diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 26ec8a65..254d627c 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -20,8 +20,8 @@ (global $rt/instanceof/nullCat i32 (i32.const 0)) (global $rt/instanceof/nullBlackcat i32 (i32.const 0)) (global $~lib/started (mut i32) (i32.const 0)) + (export "__start" (func $start)) (export "memory" (memory $0)) - (export "main" (func $rt/instanceof/main)) (func $~lib/rt/stub/__alloc (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -531,14 +531,15 @@ unreachable end ) - (func $rt/instanceof/main (; 7 ;) (type $FUNCSIG$v) + (func $start (; 7 ;) (type $FUNCSIG$v) global.get $~lib/started - i32.eqz if - call $start:rt/instanceof + return + else i32.const 1 global.set $~lib/started end + call $start:rt/instanceof ) (func $null (; 8 ;) (type $FUNCSIG$v) nop diff --git a/tests/compiler/rt/instanceof.ts b/tests/compiler/rt/instanceof.ts index 93ea0887..243bda7f 100644 --- a/tests/compiler/rt/instanceof.ts +++ b/tests/compiler/rt/instanceof.ts @@ -49,5 +49,3 @@ assert(!(nullCat instanceof BlackCat)); // dynamic false assert(!(nullBlackcat instanceof Animal)); // static false assert(!(nullBlackcat instanceof Cat)); // dynamic false assert(!(nullBlackcat instanceof BlackCat)); // dynamic false - -@start export function main(): void {} diff --git a/tests/compiler/rt/instanceof.untouched.wat b/tests/compiler/rt/instanceof.untouched.wat index 41fa7829..7c088e22 100644 --- a/tests/compiler/rt/instanceof.untouched.wat +++ b/tests/compiler/rt/instanceof.untouched.wat @@ -24,8 +24,8 @@ (global $~lib/started (mut i32) (i32.const 0)) (global $~lib/rt/__rtti_base i32 (i32.const 56)) (global $~lib/heap/__heap_base i32 (i32.const 108)) + (export "__start" (func $start)) (export "memory" (memory $0)) - (export "main" (func $rt/instanceof/main)) (func $~lib/rt/stub/__alloc (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -719,18 +719,16 @@ unreachable end ) - (func $rt/instanceof/main (; 9 ;) (type $FUNCSIG$v) + (func $start (; 9 ;) (type $FUNCSIG$v) global.get $~lib/started - i32.eqz if - call $start + return + else i32.const 1 global.set $~lib/started end - ) - (func $start (; 10 ;) (type $FUNCSIG$v) call $start:rt/instanceof ) - (func $null (; 11 ;) (type $FUNCSIG$v) + (func $null (; 10 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/array.json b/tests/compiler/std/array.json index 0c036aee..59c251c7 100644 --- a/tests/compiler/std/array.json +++ b/tests/compiler/std/array.json @@ -1,6 +1,7 @@ { "asc_flags": [ - "--runtime full", + "--runtime half", + "--explicitStart", "--use ASC_RTRACE=1" ] } \ No newline at end of file diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 6fe95033..9645a322 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -1,8 +1,8 @@ (module (type $FUNCSIG$iii (func (param i32 i32) (result i32))) - (type $FUNCSIG$v (func)) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) + (type $FUNCSIG$v (func)) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) @@ -32,13 +32,13 @@ (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) (memory $0 1) - (data (i32.const 8) "\1e\00\00\00\01\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") - (data (i32.const 56) "(\00\00\00\01\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") - (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s") - (data (i32.const 160) "$\00\00\00\01\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") - (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 256) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data (i32.const 304) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data (i32.const 8) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data (i32.const 56) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data (i32.const 112) "\1e\00\00\00\01\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") + (data (i32.const 160) "(\00\00\00\01\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") + (data (i32.const 216) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s") + (data (i32.const 264) "$\00\00\00\01\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") + (data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") (data (i32.const 360) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s") (data (i32.const 400) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00a\00b\00c") (data (i32.const 424) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\02\03\04\05") @@ -232,14 +232,8 @@ (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) (global $~lib/started (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 7248)) + (export "__start" (func $start)) (export "memory" (memory $0)) - (export "__alloc" (func $~lib/rt/tlsf/__alloc)) - (export "__retain" (func $~lib/rt/pure/__retain)) - (export "__release" (func $~lib/rt/pure/__release)) - (export "__collect" (func $~lib/rt/pure/__collect)) - (export "__rtti_base" (global $~lib/rt/__rtti_base)) - (export "main" (func $std/array/main)) (func $~lib/rt/tlsf/removeBlock (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -253,7 +247,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 276 i32.const 13 call $~lib/builtins/abort @@ -275,7 +269,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 278 i32.const 13 call $~lib/builtins/abort @@ -320,7 +314,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 291 i32.const 13 call $~lib/builtins/abort @@ -417,7 +411,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 204 i32.const 13 call $~lib/builtins/abort @@ -431,7 +425,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 206 i32.const 13 call $~lib/builtins/abort @@ -504,7 +498,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 227 i32.const 15 call $~lib/builtins/abort @@ -561,7 +555,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 242 i32.const 13 call $~lib/builtins/abort @@ -576,7 +570,7 @@ i32.ne if i32.const 0 - i32.const 24 + i32.const 128 i32.const 243 i32.const 13 call $~lib/builtins/abort @@ -626,7 +620,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 259 i32.const 13 call $~lib/builtins/abort @@ -712,7 +706,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 385 i32.const 4 call $~lib/builtins/abort @@ -729,7 +723,7 @@ i32.lt_u if i32.const 0 - i32.const 24 + i32.const 128 i32.const 395 i32.const 15 call $~lib/builtins/abort @@ -757,7 +751,7 @@ i32.lt_u if i32.const 0 - i32.const 24 + i32.const 128 i32.const 407 i32.const 4 call $~lib/builtins/abort @@ -893,8 +887,8 @@ i32.const 1073741808 i32.ge_u if - i32.const 72 - i32.const 24 + i32.const 176 + i32.const 128 i32.const 447 i32.const 29 call $~lib/builtins/abort @@ -969,7 +963,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 337 i32.const 13 call $~lib/builtins/abort @@ -1021,7 +1015,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 350 i32.const 17 call $~lib/builtins/abort @@ -1091,7 +1085,7 @@ i32.and if i32.const 0 - i32.const 24 + i32.const 128 i32.const 364 i32.const 13 call $~lib/builtins/abort @@ -1177,7 +1171,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 477 i32.const 15 call $~lib/builtins/abort @@ -1192,7 +1186,7 @@ i32.lt_u if i32.const 0 - i32.const 24 + i32.const 128 i32.const 479 i32.const 13 call $~lib/builtins/abort @@ -1249,7 +1243,7 @@ i32.ne if i32.const 0 - i32.const 128 + i32.const 232 i32.const 104 i32.const 2 call $~lib/builtins/abort @@ -1268,7 +1262,7 @@ i32.and if i32.const 0 - i32.const 128 + i32.const 232 i32.const 107 i32.const 13 call $~lib/builtins/abort @@ -1296,7 +1290,7 @@ i32.and if i32.const 0 - i32.const 24 + i32.const 128 i32.const 531 i32.const 2 call $~lib/builtins/abort @@ -1319,8 +1313,8 @@ i32.load i32.gt_u if - i32.const 176 - i32.const 232 + i32.const 280 + i32.const 336 i32.const 22 i32.const 27 call $~lib/builtins/abort @@ -1511,7 +1505,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 561 i32.const 13 call $~lib/builtins/abort @@ -1527,7 +1521,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 562 i32.const 2 call $~lib/builtins/abort @@ -1624,7 +1618,7 @@ i32.and if i32.const 0 - i32.const 128 + i32.const 232 i32.const 115 i32.const 13 call $~lib/builtins/abort @@ -1657,7 +1651,7 @@ i32.le_u if i32.const 0 - i32.const 128 + i32.const 232 i32.const 124 i32.const 15 call $~lib/builtins/abort @@ -1708,235 +1702,7 @@ call $~lib/rt/pure/decrement end ) - (func $~lib/rt/pure/markGray (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const -1879048193 - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/pure/scanBlack (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const -1879048193 - i32.and - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const -1879048193 - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const -1879048193 - i32.and - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 30 ;) (type $FUNCSIG$v) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.tee $5 - local.tee $2 - local.set $3 - global.get $~lib/rt/pure/CUR - local.set $0 - loop $repeat|0 - block $break|0 - local.get $3 - local.get $0 - i32.ge_u - br_if $break|0 - local.get $3 - i32.load - local.tee $4 - i32.load offset=4 - local.tee $1 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $4 - call $~lib/rt/pure/markGray - local.get $2 - local.get $4 - i32.store - local.get $2 - i32.const 4 - i32.add - local.set $2 - else - i32.const 0 - local.get $1 - i32.const 268435455 - i32.and - i32.eqz - local.get $1 - i32.const 1879048192 - i32.and - select - if - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/freeBlock - else - local.get $4 - local.get $1 - i32.const 2147483647 - i32.and - i32.store offset=4 - end - end - local.get $3 - i32.const 4 - i32.add - local.set $3 - br $repeat|0 - end - end - local.get $2 - global.set $~lib/rt/pure/CUR - local.get $5 - local.set $0 - loop $repeat|1 - block $break|1 - local.get $0 - local.get $2 - i32.ge_u - br_if $break|1 - local.get $0 - i32.load - call $~lib/rt/pure/scan - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $repeat|1 - end - end - local.get $5 - local.set $0 - loop $repeat|2 - block $break|2 - local.get $0 - local.get $2 - i32.ge_u - br_if $break|2 - local.get $0 - i32.load - local.tee $1 - local.get $1 - i32.load offset=4 - i32.const 2147483647 - i32.and - i32.store offset=4 - local.get $1 - call $~lib/rt/pure/collectWhite - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $repeat|2 - end - end - local.get $5 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 31 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 26 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 1073741808 @@ -1944,8 +1710,8 @@ i32.shr_u i32.gt_u if - i32.const 272 - i32.const 320 + i32.const 24 + i32.const 72 i32.const 14 i32.const 56 call $~lib/builtins/abort @@ -1999,7 +1765,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/array/Array#constructor (; 32 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#constructor (; 27 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 16 i32.const 3 @@ -2016,7 +1782,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array.isArray<~lib/array/Array | null> (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/array/Array | null> (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -2026,7 +1792,7 @@ i32.const 0 i32.ne ) - (func $~lib/array/Array.isArray (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -2034,7 +1800,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/rt/__allocArray (; 35 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/__allocArray (; 30 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) i32.const 16 local.get $2 @@ -2067,7 +1833,7 @@ end local.get $2 ) - (func $~lib/memory/memory.fill (; 36 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i64) block $~lib/util/memory/memset|inlined.0 @@ -2292,7 +2058,7 @@ end end ) - (func $~lib/array/Array#fill (; 37 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 32 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) local.get $0 @@ -2359,13 +2125,13 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -2378,7 +2144,7 @@ i32.add i32.load8_u ) - (func $std/array/isArraysEqual (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2435,7 +2201,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $~lib/array/Array#fill (; 40 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 35 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) local.get $0 @@ -2511,7 +2277,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -2519,7 +2285,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -2534,7 +2300,7 @@ i32.add i32.load ) - (func $std/array/isArraysEqual (; 42 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 call $~lib/rt/pure/__retain @@ -2596,7 +2362,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $std/array/internalCapacity (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/internalCapacity (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2618,7 +2384,7 @@ i32.const 2 i32.shr_s ) - (func $~lib/rt/tlsf/reallocateBlock (; 44 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 39 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2633,7 +2399,7 @@ i32.and if i32.const 0 - i32.const 24 + i32.const 128 i32.const 493 i32.const 13 call $~lib/builtins/abort @@ -2732,12 +2498,12 @@ call $~lib/rt/tlsf/insertBlock local.get $3 ) - (func $~lib/rt/tlsf/__realloc (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__realloc (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 553 i32.const 13 call $~lib/builtins/abort @@ -2753,7 +2519,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 554 i32.const 2 call $~lib/builtins/abort @@ -2768,7 +2534,7 @@ i32.const 16 i32.add ) - (func $~lib/array/ensureSize (; 46 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/ensureSize (; 41 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2784,7 +2550,7 @@ i32.const 268435452 i32.gt_u if - i32.const 272 + i32.const 24 i32.const 488 i32.const 14 i32.const 47 @@ -2824,7 +2590,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array#push (; 47 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#push (; 42 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2847,7 +2613,7 @@ local.get $3 i32.store offset=12 ) - (func $~lib/array/Array#pop (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#pop (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2879,7 +2645,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#concat (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#concat (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2903,7 +2669,7 @@ if local.get $1 call $~lib/rt/pure/__release - i32.const 272 + i32.const 24 i32.const 488 i32.const 217 i32.const 59 @@ -2939,7 +2705,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array#copyWithin (; 50 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#copyWithin (; 45 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) local.get $3 @@ -3043,7 +2809,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#unshift (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#unshift (; 46 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3072,7 +2838,7 @@ local.get $2 i32.store offset=12 ) - (func $~lib/array/Array#shift (; 52 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#shift (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3117,7 +2883,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#reverse (; 53 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#reverse (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3167,7 +2933,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#indexOf (; 54 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 49 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -3227,7 +2993,7 @@ end i32.const -1 ) - (func $~lib/array/Array#includes (; 55 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 50 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 local.get $2 @@ -3235,7 +3001,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#splice (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 51 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3325,7 +3091,7 @@ i32.store offset=12 local.get $4 ) - (func $~lib/array/Array#__set (; 57 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 52 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -3354,7 +3120,7 @@ i32.store offset=12 end ) - (func $start:std/array~anonymous|0 (; 58 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|0 (; 53 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3363,7 +3129,7 @@ local.get $0 i32.eqz ) - (func $~lib/array/Array#findIndex (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 54 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3411,7 +3177,7 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 60 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 55 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3421,7 +3187,7 @@ i32.const 1 i32.eq ) - (func $start:std/array~anonymous|2 (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3431,7 +3197,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|3 (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3444,7 +3210,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|5 (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 58 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3457,7 +3223,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|6 (; 64 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 59 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3467,7 +3233,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#every (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3515,7 +3281,7 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3525,7 +3291,7 @@ i32.const 0 i32.le_s ) - (func $start:std/array~anonymous|8 (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3538,7 +3304,7 @@ i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|9 (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3548,7 +3314,7 @@ i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|10 (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 64 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3561,7 +3327,7 @@ i32.const 3 i32.lt_s ) - (func $start:std/array~anonymous|11 (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 65 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3571,7 +3337,7 @@ i32.const 3 i32.ge_s ) - (func $~lib/array/Array#some (; 71 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3619,7 +3385,7 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3629,7 +3395,7 @@ i32.const -1 i32.le_s ) - (func $start:std/array~anonymous|13 (; 73 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3642,7 +3408,7 @@ i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|14 (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3652,7 +3418,7 @@ i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|15 (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3665,7 +3431,7 @@ i32.const 3 i32.gt_s ) - (func $start:std/array~anonymous|16 (; 76 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 71 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3676,7 +3442,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#forEach (; 77 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 72 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3719,7 +3485,7 @@ unreachable end ) - (func $start:std/array~anonymous|17 (; 78 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 73 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3733,7 +3499,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|19 (; 79 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 74 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3747,7 +3513,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|20 (; 80 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 75 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -3840,7 +3606,7 @@ if i32.const 0 i32.const 376 - i32.const 570 + i32.const 568 i32.const 6 call $~lib/builtins/abort unreachable @@ -3849,7 +3615,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|21 (; 81 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 76 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3858,7 +3624,7 @@ local.get $0 f32.convert_i32_s ) - (func $~lib/array/Array#map (; 82 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#map (; 77 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3916,7 +3682,7 @@ end local.get $4 ) - (func $~lib/array/Array#__get (; 83 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 78 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=8 @@ -3924,7 +3690,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -3939,7 +3705,7 @@ i32.add f32.load ) - (func $start:std/array~anonymous|22 (; 84 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|22 (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3954,7 +3720,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/array/Array#map (; 85 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 80 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4014,7 +3780,7 @@ end local.get $5 ) - (func $start:std/array~anonymous|23 (; 86 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4026,7 +3792,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $start:std/array~anonymous|24 (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 82 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4041,7 +3807,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $start:std/array~anonymous|25 (; 88 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4051,7 +3817,7 @@ i32.const 2 i32.ge_s ) - (func $~lib/array/Array#filter (; 89 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 84 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4108,7 +3874,7 @@ end local.get $4 ) - (func $start:std/array~anonymous|26 (; 90 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4125,7 +3891,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|27 (; 91 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 86 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4139,7 +3905,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|28 (; 92 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4156,7 +3922,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|29 (; 93 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 88 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/rt/pure/__retain drop @@ -4166,7 +3932,7 @@ local.get $1 i32.add ) - (func $~lib/array/Array#reduce (; 94 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 89 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4210,7 +3976,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|31 (; 95 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|31 (; 90 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/rt/pure/__retain drop @@ -4223,7 +3989,7 @@ local.get $0 select ) - (func $start:std/array~anonymous|32 (; 96 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 91 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/rt/pure/__retain drop @@ -4236,7 +4002,7 @@ local.get $0 select ) - (func $start:std/array~anonymous|33 (; 97 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 92 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/rt/pure/__retain drop @@ -4249,7 +4015,7 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|35 (; 98 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 93 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/rt/pure/__retain drop @@ -4262,7 +4028,7 @@ local.get $1 i32.add ) - (func $~lib/array/Array#reduceRight (; 99 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 94 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -4299,7 +4065,7 @@ end local.get $2 ) - (func $~lib/math/murmurHash3 (; 100 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 95 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 i64.const 33 i64.shr_u @@ -4320,7 +4086,7 @@ i64.shr_u i64.xor ) - (func $~lib/math/splitMix32 (; 101 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 96 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -4352,7 +4118,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 102 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 97 ;) (type $FUNCSIG$vj) (param $0 i64) local.get $0 i64.eqz if @@ -4381,7 +4147,7 @@ call $~lib/math/splitMix32 global.set $~lib/math/random_state1_32 ) - (func $~lib/util/sort/insertionSort (; 103 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 98 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -4463,7 +4229,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 104 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 99 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -4724,7 +4490,7 @@ local.get $5 f32.store ) - (func $~lib/array/Array#sort (; 105 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 100 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -4789,7 +4555,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 106 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 101 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4818,12 +4584,12 @@ i32.lt_s i32.sub ) - (func $~lib/builtins/isNaN (; 107 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/builtins/isNaN (; 102 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.ne ) - (func $std/array/isArraysEqual (; 108 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 103 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4891,7 +4657,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 109 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 104 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -4973,7 +4739,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 110 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 105 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -5234,7 +5000,7 @@ local.get $5 f64.store ) - (func $~lib/array/Array#sort (; 111 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 106 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -5299,7 +5065,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 112 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 107 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -5328,7 +5094,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#__get (; 113 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 108 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=8 @@ -5336,7 +5102,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -5351,12 +5117,12 @@ i32.add f64.load ) - (func $~lib/builtins/isNaN (; 114 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 109 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $std/array/isArraysEqual (; 115 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 110 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5424,7 +5190,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 116 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 111 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5506,7 +5272,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 117 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 112 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5767,7 +5533,7 @@ local.get $1 i32.store ) - (func $~lib/array/Array#sort (; 118 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 113 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5831,12 +5597,12 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 119 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 114 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 120 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 115 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -5845,12 +5611,12 @@ i32.lt_u i32.sub ) - (func $~lib/array/Array.create (; 121 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create (; 116 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 268435452 i32.gt_u if - i32.const 272 + i32.const 24 i32.const 488 i32.const 45 i32.const 61 @@ -5874,7 +5640,7 @@ call $~lib/memory/memory.fill local.get $0 ) - (func $std/array/createReverseOrderedArray (; 122 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 117 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5903,7 +5669,7 @@ end local.get $2 ) - (func $~lib/math/NativeMath.random (; 123 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 118 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded @@ -5950,7 +5716,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 124 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 119 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5979,7 +5745,7 @@ end local.get $2 ) - (func $std/array/isSorted (; 125 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 120 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -6028,7 +5794,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $std/array/assertSorted (; 126 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 121 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6043,7 +5809,7 @@ if i32.const 0 i32.const 376 - i32.const 832 + i32.const 830 i32.const 2 call $~lib/builtins/abort unreachable @@ -6053,7 +5819,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/array/assertSortedDefault (; 127 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSortedDefault (; 122 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -6063,12 +5829,12 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|44 (; 128 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 123 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $~lib/array/Array.create<~lib/array/Array> (; 129 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array.create<~lib/array/Array> (; 124 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 2 i32.const 2 @@ -6087,7 +5853,7 @@ call $~lib/memory/memory.fill local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 130 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 125 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6113,7 +5879,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/array/Array>#__set (; 131 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__set (; 126 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6155,7 +5921,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedNestedArray (; 132 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 127 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6189,7 +5955,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|47 (; 133 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 128 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6211,7 +5977,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 134 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 129 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6304,7 +6070,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#sort (; 135 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#sort (; 130 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6366,7 +6132,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 136 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 131 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -6376,7 +6142,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#__get (; 137 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__get (; 132 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -6396,7 +6162,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -6407,7 +6173,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get ) - (func $std/array/isSorted<~lib/array/Array> (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/array/Array> (; 133 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6468,7 +6234,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $std/array/assertSorted<~lib/array/Array> (; 139 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/array/Array> (; 134 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6483,7 +6249,7 @@ if i32.const 0 i32.const 376 - i32.const 832 + i32.const 830 i32.const 2 call $~lib/builtins/abort unreachable @@ -6493,7 +6259,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array.create> (; 140 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array.create> (; 135 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 512 i32.const 2 @@ -6512,7 +6278,7 @@ call $~lib/memory/memory.fill local.get $0 ) - (func $std/array/createReverseOrderedElementsArray (; 141 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 136 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6547,7 +6313,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|48 (; 142 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 137 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6567,7 +6333,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array<~lib/string/String | null>#__get (; 143 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__get (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -6575,7 +6341,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -6586,7 +6352,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get ) - (func $std/array/isSorted<~lib/string/String | null> (; 144 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String | null> (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6647,7 +6413,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $std/array/assertSorted<~lib/string/String | null> (; 145 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null> (; 140 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6662,7 +6428,7 @@ if i32.const 0 i32.const 376 - i32.const 832 + i32.const 830 i32.const 2 call $~lib/builtins/abort unreachable @@ -6672,7 +6438,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String#get:length (; 146 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 141 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -6680,7 +6446,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 147 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/compareImpl (; 142 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6729,7 +6495,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 148 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 143 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -6810,7 +6576,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__eq (; 149 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 144 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6866,7 +6632,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__ne (; 150 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 145 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6885,7 +6651,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/isArraysEqual<~lib/string/String | null> (; 151 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual<~lib/string/String | null> (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6966,7 +6732,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $~lib/array/Array.create<~lib/string/String> (; 152 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array.create<~lib/string/String> (; 147 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 400 i32.const 2 @@ -6985,7 +6751,7 @@ call $~lib/memory/memory.fill local.get $0 ) - (func $~lib/string/String#charAt (; 153 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#charAt (; 148 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 3200 @@ -7010,7 +6776,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#concat (; 154 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 149 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7073,7 +6839,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 155 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 150 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7094,7 +6860,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/createRandomString (; 156 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 151 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7145,7 +6911,7 @@ end local.get $1 ) - (func $std/array/createRandomStringArray (; 157 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createRandomStringArray (; 152 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7176,7 +6942,7 @@ end local.get $1 ) - (func $~lib/string/String#substring (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 153 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -7263,7 +7029,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#join_bool (; 159 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_bool (; 154 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7426,7 +7192,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/number/decimalCount32 (; 160 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 155 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 2 local.get $0 @@ -7474,7 +7240,7 @@ i32.lt_u select ) - (func $~lib/util/number/utoa_simple (; 161 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 156 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -7500,7 +7266,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/itoa32 (; 162 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 157 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7543,7 +7309,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 163 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 158 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -7587,7 +7353,7 @@ end local.get $2 ) - (func $~lib/array/Array#join_int (; 164 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7721,7 +7487,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array#join (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 160 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -7733,7 +7499,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/util/number/utoa32 (; 166 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 161 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -7757,7 +7523,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 167 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 162 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -7781,7 +7547,7 @@ call $~lib/util/number/utoa_simple local.get $0 ) - (func $~lib/array/Array#join_int (; 168 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 163 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7915,7 +7681,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array#join (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 164 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -7927,14 +7693,14 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/builtins/isFinite (; 170 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isFinite (; 165 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.sub f64.const 0 f64.eq ) - (func $~lib/util/number/genDigits (; 171 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 166 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i32) (local $9 i64) @@ -8335,7 +8101,7 @@ local.get $6 end ) - (func $~lib/util/number/prettify (; 172 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 167 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -8586,7 +8352,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 173 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 168 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) @@ -8874,7 +8640,7 @@ local.get $10 i32.add ) - (func $~lib/util/number/dtoa (; 174 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 169 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -8927,7 +8693,7 @@ call $~lib/rt/tlsf/__free local.get $2 ) - (func $~lib/util/number/dtoa_stream (; 175 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 170 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -8995,7 +8761,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array#join_flt (; 176 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_flt (; 171 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9129,7 +8895,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array<~lib/string/String>#join_str (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join_str (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9336,7 +9102,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#join (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -9348,13 +9114,13 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/array/Ref#constructor (; 179 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/Ref#constructor (; 174 ;) (type $FUNCSIG$i) (result i32) i32.const 0 i32.const 18 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#join_ref (; 180 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_ref (; 175 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9521,12 +9287,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array#toString (; 181 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 176 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa_stream (; 182 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 177 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -9581,7 +9347,7 @@ end local.get $2 ) - (func $~lib/array/Array#join_int (; 183 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 178 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9711,7 +9477,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/itoa_stream (; 184 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 179 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -9741,7 +9507,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/array/Array#join_int (; 185 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 180 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9875,7 +9641,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/decimalCount64 (; 186 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 181 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) i32.const 11 i32.const 12 local.get $0 @@ -9923,7 +9689,7 @@ i64.lt_u select ) - (func $~lib/util/number/utoa_simple (; 187 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 182 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i64) loop $continue|0 local.get $1 @@ -9952,7 +9718,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/utoa64 (; 188 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 183 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9996,7 +9762,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 189 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 184 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -10036,7 +9802,7 @@ end local.get $1 ) - (func $~lib/array/Array#join_int (; 190 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 185 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10170,7 +9936,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/itoa64 (; 191 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 186 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10237,7 +10003,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 192 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 187 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -10300,7 +10066,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 193 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 188 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10434,12 +10200,12 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array<~lib/string/String | null>#toString (; 194 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#toString (; 189 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/string/String>#join ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 195 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 190 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10632,7 +10398,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/number/itoa_stream (; 196 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 191 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -10662,7 +10428,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/array/Array#join_int (; 197 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 192 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10792,7 +10558,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array#join (; 198 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join (; 193 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 4512 call $~lib/rt/pure/__retain drop @@ -10803,7 +10569,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 199 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 194 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10993,7 +10759,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 200 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 195 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11186,7 +10952,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 201 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 196 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 4512 call $~lib/rt/pure/__retain drop @@ -11197,7 +10963,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 202 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 197 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11387,7 +11153,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $start:std/array (; 203 ;) (type $FUNCSIG$v) + (func $start:std/array (; 198 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11448,7 +11214,7 @@ if i32.const 0 i32.const 376 - i32.const 37 + i32.const 35 i32.const 2 call $~lib/builtins/abort unreachable @@ -11460,7 +11226,7 @@ if i32.const 0 i32.const 376 - i32.const 38 + i32.const 36 i32.const 2 call $~lib/builtins/abort unreachable @@ -11476,7 +11242,7 @@ if i32.const 0 i32.const 376 - i32.const 39 + i32.const 37 i32.const 2 call $~lib/builtins/abort unreachable @@ -11495,7 +11261,7 @@ if i32.const 0 i32.const 376 - i32.const 40 + i32.const 38 i32.const 2 call $~lib/builtins/abort unreachable @@ -11505,7 +11271,7 @@ if i32.const 0 i32.const 376 - i32.const 42 + i32.const 40 i32.const 2 call $~lib/builtins/abort unreachable @@ -11541,7 +11307,7 @@ if i32.const 0 i32.const 376 - i32.const 50 + i32.const 48 i32.const 2 call $~lib/builtins/abort unreachable @@ -11565,7 +11331,7 @@ if i32.const 0 i32.const 376 - i32.const 53 + i32.const 51 i32.const 2 call $~lib/builtins/abort unreachable @@ -11589,7 +11355,7 @@ if i32.const 0 i32.const 376 - i32.const 56 + i32.const 54 i32.const 2 call $~lib/builtins/abort unreachable @@ -11613,7 +11379,7 @@ if i32.const 0 i32.const 376 - i32.const 59 + i32.const 57 i32.const 2 call $~lib/builtins/abort unreachable @@ -11637,7 +11403,7 @@ if i32.const 0 i32.const 376 - i32.const 62 + i32.const 60 i32.const 2 call $~lib/builtins/abort unreachable @@ -11684,7 +11450,7 @@ if i32.const 0 i32.const 376 - i32.const 69 + i32.const 67 i32.const 2 call $~lib/builtins/abort unreachable @@ -11709,7 +11475,7 @@ if i32.const 0 i32.const 376 - i32.const 72 + i32.const 70 i32.const 2 call $~lib/builtins/abort unreachable @@ -11734,7 +11500,7 @@ if i32.const 0 i32.const 376 - i32.const 75 + i32.const 73 i32.const 2 call $~lib/builtins/abort unreachable @@ -11759,7 +11525,7 @@ if i32.const 0 i32.const 376 - i32.const 78 + i32.const 76 i32.const 2 call $~lib/builtins/abort unreachable @@ -11784,7 +11550,7 @@ if i32.const 0 i32.const 376 - i32.const 81 + i32.const 79 i32.const 2 call $~lib/builtins/abort unreachable @@ -11808,7 +11574,7 @@ if i32.const 0 i32.const 376 - i32.const 87 + i32.const 85 i32.const 2 call $~lib/builtins/abort unreachable @@ -11818,7 +11584,7 @@ if i32.const 0 i32.const 376 - i32.const 88 + i32.const 86 i32.const 2 call $~lib/builtins/abort unreachable @@ -11834,7 +11600,7 @@ if i32.const 0 i32.const 376 - i32.const 92 + i32.const 90 i32.const 2 call $~lib/builtins/abort unreachable @@ -11846,7 +11612,7 @@ if i32.const 0 i32.const 376 - i32.const 93 + i32.const 91 i32.const 2 call $~lib/builtins/abort unreachable @@ -11858,7 +11624,7 @@ if i32.const 0 i32.const 376 - i32.const 94 + i32.const 92 i32.const 2 call $~lib/builtins/abort unreachable @@ -11870,7 +11636,7 @@ if i32.const 0 i32.const 376 - i32.const 98 + i32.const 96 i32.const 2 call $~lib/builtins/abort unreachable @@ -11880,7 +11646,7 @@ if i32.const 0 i32.const 376 - i32.const 99 + i32.const 97 i32.const 2 call $~lib/builtins/abort unreachable @@ -11892,7 +11658,7 @@ if i32.const 0 i32.const 376 - i32.const 100 + i32.const 98 i32.const 2 call $~lib/builtins/abort unreachable @@ -11904,6 +11670,31 @@ i32.load offset=12 i32.const 1 i32.ne + if + i32.const 0 + i32.const 376 + i32.const 102 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 376 + i32.const 103 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.ne if i32.const 0 i32.const 376 @@ -11913,13 +11704,28 @@ unreachable end global.get $std/array/arr - call $std/array/internalCapacity - i32.const 1 + i32.const 44 + call $~lib/array/Array#push + global.get $std/array/arr + i32.load offset=12 + i32.const 2 i32.ne if i32.const 0 i32.const 376 - i32.const 105 + i32.const 108 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 376 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -11929,21 +11735,6 @@ call $~lib/array/Array#__get i32.const 43 i32.ne - if - i32.const 0 - i32.const 376 - i32.const 106 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 44 - call $~lib/array/Array#push - global.get $std/array/arr - i32.load offset=12 - i32.const 2 - i32.ne if i32.const 0 i32.const 376 @@ -11953,31 +11744,6 @@ unreachable end global.get $std/array/arr - call $std/array/internalCapacity - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 376 - i32.const 111 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.ne - if - i32.const 0 - i32.const 376 - i32.const 112 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -11985,7 +11751,7 @@ if i32.const 0 i32.const 376 - i32.const 113 + i32.const 111 i32.const 2 call $~lib/builtins/abort unreachable @@ -12000,7 +11766,7 @@ if i32.const 0 i32.const 376 - i32.const 117 + i32.const 115 i32.const 2 call $~lib/builtins/abort unreachable @@ -12012,7 +11778,7 @@ if i32.const 0 i32.const 376 - i32.const 118 + i32.const 116 i32.const 2 call $~lib/builtins/abort unreachable @@ -12025,7 +11791,7 @@ if i32.const 0 i32.const 376 - i32.const 119 + i32.const 117 i32.const 2 call $~lib/builtins/abort unreachable @@ -12038,7 +11804,7 @@ if i32.const 0 i32.const 376 - i32.const 120 + i32.const 118 i32.const 2 call $~lib/builtins/abort unreachable @@ -12051,7 +11817,7 @@ if i32.const 0 i32.const 376 - i32.const 121 + i32.const 119 i32.const 2 call $~lib/builtins/abort unreachable @@ -12069,7 +11835,7 @@ if i32.const 0 i32.const 376 - i32.const 130 + i32.const 128 i32.const 2 call $~lib/builtins/abort unreachable @@ -12081,7 +11847,7 @@ if i32.const 0 i32.const 376 - i32.const 131 + i32.const 129 i32.const 2 call $~lib/builtins/abort unreachable @@ -12093,7 +11859,7 @@ if i32.const 0 i32.const 376 - i32.const 132 + i32.const 130 i32.const 2 call $~lib/builtins/abort unreachable @@ -12115,7 +11881,7 @@ if i32.const 0 i32.const 376 - i32.const 135 + i32.const 133 i32.const 2 call $~lib/builtins/abort unreachable @@ -12128,7 +11894,7 @@ if i32.const 0 i32.const 376 - i32.const 137 + i32.const 135 i32.const 2 call $~lib/builtins/abort unreachable @@ -12141,7 +11907,7 @@ if i32.const 0 i32.const 376 - i32.const 138 + i32.const 136 i32.const 2 call $~lib/builtins/abort unreachable @@ -12154,7 +11920,7 @@ if i32.const 0 i32.const 376 - i32.const 139 + i32.const 137 i32.const 2 call $~lib/builtins/abort unreachable @@ -12178,7 +11944,7 @@ if i32.const 0 i32.const 376 - i32.const 146 + i32.const 144 i32.const 2 call $~lib/builtins/abort unreachable @@ -12190,7 +11956,7 @@ if i32.const 0 i32.const 376 - i32.const 147 + i32.const 145 i32.const 2 call $~lib/builtins/abort unreachable @@ -12202,7 +11968,7 @@ if i32.const 0 i32.const 376 - i32.const 148 + i32.const 146 i32.const 2 call $~lib/builtins/abort unreachable @@ -12215,7 +11981,7 @@ if i32.const 0 i32.const 376 - i32.const 149 + i32.const 147 i32.const 2 call $~lib/builtins/abort unreachable @@ -12228,7 +11994,7 @@ if i32.const 0 i32.const 376 - i32.const 150 + i32.const 148 i32.const 2 call $~lib/builtins/abort unreachable @@ -12241,7 +12007,7 @@ if i32.const 0 i32.const 376 - i32.const 151 + i32.const 149 i32.const 2 call $~lib/builtins/abort unreachable @@ -12254,7 +12020,7 @@ if i32.const 0 i32.const 376 - i32.const 152 + i32.const 150 i32.const 2 call $~lib/builtins/abort unreachable @@ -12267,7 +12033,7 @@ if i32.const 0 i32.const 376 - i32.const 153 + i32.const 151 i32.const 2 call $~lib/builtins/abort unreachable @@ -12282,7 +12048,7 @@ if i32.const 0 i32.const 376 - i32.const 156 + i32.const 154 i32.const 2 call $~lib/builtins/abort unreachable @@ -12300,7 +12066,7 @@ if i32.const 0 i32.const 376 - i32.const 159 + i32.const 157 i32.const 2 call $~lib/builtins/abort unreachable @@ -12313,7 +12079,7 @@ if i32.const 0 i32.const 376 - i32.const 160 + i32.const 158 i32.const 2 call $~lib/builtins/abort unreachable @@ -12331,7 +12097,7 @@ if i32.const 0 i32.const 376 - i32.const 163 + i32.const 161 i32.const 2 call $~lib/builtins/abort unreachable @@ -12349,7 +12115,7 @@ if i32.const 0 i32.const 376 - i32.const 165 + i32.const 163 i32.const 2 call $~lib/builtins/abort unreachable @@ -12359,7 +12125,7 @@ if i32.const 0 i32.const 376 - i32.const 166 + i32.const 164 i32.const 2 call $~lib/builtins/abort unreachable @@ -12408,7 +12174,7 @@ if i32.const 0 i32.const 376 - i32.const 174 + i32.const 172 i32.const 2 call $~lib/builtins/abort unreachable @@ -12449,7 +12215,7 @@ if i32.const 0 i32.const 376 - i32.const 176 + i32.const 174 i32.const 2 call $~lib/builtins/abort unreachable @@ -12490,7 +12256,7 @@ if i32.const 0 i32.const 376 - i32.const 178 + i32.const 176 i32.const 2 call $~lib/builtins/abort unreachable @@ -12532,7 +12298,7 @@ if i32.const 0 i32.const 376 - i32.const 180 + i32.const 178 i32.const 2 call $~lib/builtins/abort unreachable @@ -12574,7 +12340,7 @@ if i32.const 0 i32.const 376 - i32.const 182 + i32.const 180 i32.const 2 call $~lib/builtins/abort unreachable @@ -12616,7 +12382,7 @@ if i32.const 0 i32.const 376 - i32.const 184 + i32.const 182 i32.const 2 call $~lib/builtins/abort unreachable @@ -12658,7 +12424,7 @@ if i32.const 0 i32.const 376 - i32.const 186 + i32.const 184 i32.const 2 call $~lib/builtins/abort unreachable @@ -12700,7 +12466,7 @@ if i32.const 0 i32.const 376 - i32.const 188 + i32.const 186 i32.const 2 call $~lib/builtins/abort unreachable @@ -12742,7 +12508,7 @@ if i32.const 0 i32.const 376 - i32.const 190 + i32.const 188 i32.const 2 call $~lib/builtins/abort unreachable @@ -12784,7 +12550,7 @@ if i32.const 0 i32.const 376 - i32.const 192 + i32.const 190 i32.const 2 call $~lib/builtins/abort unreachable @@ -12826,7 +12592,7 @@ if i32.const 0 i32.const 376 - i32.const 194 + i32.const 192 i32.const 2 call $~lib/builtins/abort unreachable @@ -12868,7 +12634,7 @@ if i32.const 0 i32.const 376 - i32.const 196 + i32.const 194 i32.const 2 call $~lib/builtins/abort unreachable @@ -12957,7 +12723,7 @@ if i32.const 0 i32.const 376 - i32.const 204 + i32.const 202 i32.const 2 call $~lib/builtins/abort unreachable @@ -12969,7 +12735,7 @@ if i32.const 0 i32.const 376 - i32.const 205 + i32.const 203 i32.const 2 call $~lib/builtins/abort unreachable @@ -12982,7 +12748,7 @@ if i32.const 0 i32.const 376 - i32.const 206 + i32.const 204 i32.const 2 call $~lib/builtins/abort unreachable @@ -12995,7 +12761,7 @@ if i32.const 0 i32.const 376 - i32.const 207 + i32.const 205 i32.const 2 call $~lib/builtins/abort unreachable @@ -13008,7 +12774,7 @@ if i32.const 0 i32.const 376 - i32.const 208 + i32.const 206 i32.const 2 call $~lib/builtins/abort unreachable @@ -13021,7 +12787,7 @@ if i32.const 0 i32.const 376 - i32.const 209 + i32.const 207 i32.const 2 call $~lib/builtins/abort unreachable @@ -13036,7 +12802,7 @@ if i32.const 0 i32.const 376 - i32.const 213 + i32.const 211 i32.const 2 call $~lib/builtins/abort unreachable @@ -13048,7 +12814,7 @@ if i32.const 0 i32.const 376 - i32.const 214 + i32.const 212 i32.const 2 call $~lib/builtins/abort unreachable @@ -13061,7 +12827,7 @@ if i32.const 0 i32.const 376 - i32.const 215 + i32.const 213 i32.const 2 call $~lib/builtins/abort unreachable @@ -13074,7 +12840,7 @@ if i32.const 0 i32.const 376 - i32.const 216 + i32.const 214 i32.const 2 call $~lib/builtins/abort unreachable @@ -13087,7 +12853,7 @@ if i32.const 0 i32.const 376 - i32.const 217 + i32.const 215 i32.const 2 call $~lib/builtins/abort unreachable @@ -13100,7 +12866,7 @@ if i32.const 0 i32.const 376 - i32.const 218 + i32.const 216 i32.const 2 call $~lib/builtins/abort unreachable @@ -13113,7 +12879,7 @@ if i32.const 0 i32.const 376 - i32.const 219 + i32.const 217 i32.const 2 call $~lib/builtins/abort unreachable @@ -13127,7 +12893,7 @@ if i32.const 0 i32.const 376 - i32.const 228 + i32.const 226 i32.const 2 call $~lib/builtins/abort unreachable @@ -13139,7 +12905,7 @@ if i32.const 0 i32.const 376 - i32.const 229 + i32.const 227 i32.const 2 call $~lib/builtins/abort unreachable @@ -13151,7 +12917,7 @@ if i32.const 0 i32.const 376 - i32.const 230 + i32.const 228 i32.const 2 call $~lib/builtins/abort unreachable @@ -13164,7 +12930,7 @@ if i32.const 0 i32.const 376 - i32.const 231 + i32.const 229 i32.const 2 call $~lib/builtins/abort unreachable @@ -13177,7 +12943,7 @@ if i32.const 0 i32.const 376 - i32.const 232 + i32.const 230 i32.const 2 call $~lib/builtins/abort unreachable @@ -13190,7 +12956,7 @@ if i32.const 0 i32.const 376 - i32.const 233 + i32.const 231 i32.const 2 call $~lib/builtins/abort unreachable @@ -13203,7 +12969,7 @@ if i32.const 0 i32.const 376 - i32.const 234 + i32.const 232 i32.const 2 call $~lib/builtins/abort unreachable @@ -13217,7 +12983,7 @@ if i32.const 0 i32.const 376 - i32.const 238 + i32.const 236 i32.const 2 call $~lib/builtins/abort unreachable @@ -13229,7 +12995,7 @@ if i32.const 0 i32.const 376 - i32.const 239 + i32.const 237 i32.const 2 call $~lib/builtins/abort unreachable @@ -13241,7 +13007,7 @@ if i32.const 0 i32.const 376 - i32.const 240 + i32.const 238 i32.const 2 call $~lib/builtins/abort unreachable @@ -13254,7 +13020,7 @@ if i32.const 0 i32.const 376 - i32.const 241 + i32.const 239 i32.const 2 call $~lib/builtins/abort unreachable @@ -13267,7 +13033,7 @@ if i32.const 0 i32.const 376 - i32.const 242 + i32.const 240 i32.const 2 call $~lib/builtins/abort unreachable @@ -13280,7 +13046,7 @@ if i32.const 0 i32.const 376 - i32.const 243 + i32.const 241 i32.const 2 call $~lib/builtins/abort unreachable @@ -13295,7 +13061,7 @@ if i32.const 0 i32.const 376 - i32.const 251 + i32.const 249 i32.const 2 call $~lib/builtins/abort unreachable @@ -13307,7 +13073,7 @@ if i32.const 0 i32.const 376 - i32.const 252 + i32.const 250 i32.const 2 call $~lib/builtins/abort unreachable @@ -13317,6 +13083,32 @@ call $~lib/array/Array#__get i32.const 44 i32.ne + if + i32.const 0 + i32.const 376 + i32.const 251 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 376 + i32.const 252 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 42 + i32.ne if i32.const 0 i32.const 376 @@ -13326,32 +13118,6 @@ unreachable end global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 43 - i32.ne - if - i32.const 0 - i32.const 376 - i32.const 254 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 376 - i32.const 255 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr i32.const 43 call $~lib/array/Array#push global.get $std/array/arr @@ -13366,7 +13132,7 @@ if i32.const 0 i32.const 376 - i32.const 265 + i32.const 263 i32.const 2 call $~lib/builtins/abort unreachable @@ -13382,7 +13148,7 @@ if i32.const 0 i32.const 376 - i32.const 268 + i32.const 266 i32.const 2 call $~lib/builtins/abort unreachable @@ -13398,7 +13164,7 @@ if i32.const 0 i32.const 376 - i32.const 271 + i32.const 269 i32.const 2 call $~lib/builtins/abort unreachable @@ -13414,7 +13180,7 @@ if i32.const 0 i32.const 376 - i32.const 274 + i32.const 272 i32.const 2 call $~lib/builtins/abort unreachable @@ -13430,7 +13196,7 @@ if i32.const 0 i32.const 376 - i32.const 277 + i32.const 275 i32.const 2 call $~lib/builtins/abort unreachable @@ -13446,7 +13212,7 @@ if i32.const 0 i32.const 376 - i32.const 280 + i32.const 278 i32.const 2 call $~lib/builtins/abort unreachable @@ -13462,7 +13228,7 @@ if i32.const 0 i32.const 376 - i32.const 283 + i32.const 281 i32.const 2 call $~lib/builtins/abort unreachable @@ -13478,7 +13244,7 @@ if i32.const 0 i32.const 376 - i32.const 286 + i32.const 284 i32.const 2 call $~lib/builtins/abort unreachable @@ -13494,7 +13260,7 @@ if i32.const 0 i32.const 376 - i32.const 289 + i32.const 287 i32.const 2 call $~lib/builtins/abort unreachable @@ -13510,7 +13276,7 @@ if i32.const 0 i32.const 376 - i32.const 292 + i32.const 290 i32.const 2 call $~lib/builtins/abort unreachable @@ -13524,7 +13290,7 @@ if i32.const 0 i32.const 376 - i32.const 299 + i32.const 297 i32.const 2 call $~lib/builtins/abort unreachable @@ -13538,7 +13304,7 @@ if i32.const 0 i32.const 376 - i32.const 302 + i32.const 300 i32.const 2 call $~lib/builtins/abort unreachable @@ -13550,7 +13316,7 @@ if i32.const 0 i32.const 376 - i32.const 305 + i32.const 303 i32.const 2 call $~lib/builtins/abort unreachable @@ -13562,7 +13328,7 @@ if i32.const 0 i32.const 376 - i32.const 308 + i32.const 306 i32.const 2 call $~lib/builtins/abort unreachable @@ -13576,7 +13342,7 @@ if i32.const 0 i32.const 376 - i32.const 311 + i32.const 309 i32.const 2 call $~lib/builtins/abort unreachable @@ -13590,7 +13356,7 @@ if i32.const 0 i32.const 376 - i32.const 314 + i32.const 312 i32.const 2 call $~lib/builtins/abort unreachable @@ -13604,7 +13370,7 @@ if i32.const 0 i32.const 376 - i32.const 317 + i32.const 315 i32.const 2 call $~lib/builtins/abort unreachable @@ -13618,7 +13384,7 @@ if i32.const 0 i32.const 376 - i32.const 320 + i32.const 318 i32.const 2 call $~lib/builtins/abort unreachable @@ -13632,7 +13398,7 @@ if i32.const 0 i32.const 376 - i32.const 323 + i32.const 321 i32.const 2 call $~lib/builtins/abort unreachable @@ -13646,7 +13412,7 @@ if i32.const 0 i32.const 376 - i32.const 326 + i32.const 324 i32.const 2 call $~lib/builtins/abort unreachable @@ -13663,7 +13429,7 @@ if i32.const 0 i32.const 376 - i32.const 330 + i32.const 328 i32.const 2 call $~lib/builtins/abort unreachable @@ -13675,7 +13441,7 @@ if i32.const 0 i32.const 376 - i32.const 331 + i32.const 329 i32.const 2 call $~lib/builtins/abort unreachable @@ -13688,7 +13454,7 @@ if i32.const 0 i32.const 376 - i32.const 332 + i32.const 330 i32.const 2 call $~lib/builtins/abort unreachable @@ -13701,7 +13467,7 @@ if i32.const 0 i32.const 376 - i32.const 333 + i32.const 331 i32.const 2 call $~lib/builtins/abort unreachable @@ -13732,7 +13498,7 @@ if i32.const 0 i32.const 376 - i32.const 340 + i32.const 338 i32.const 2 call $~lib/builtins/abort unreachable @@ -13751,7 +13517,7 @@ if i32.const 0 i32.const 376 - i32.const 341 + i32.const 339 i32.const 2 call $~lib/builtins/abort unreachable @@ -13791,7 +13557,7 @@ if i32.const 0 i32.const 376 - i32.const 344 + i32.const 342 i32.const 2 call $~lib/builtins/abort unreachable @@ -13810,7 +13576,7 @@ if i32.const 0 i32.const 376 - i32.const 345 + i32.const 343 i32.const 2 call $~lib/builtins/abort unreachable @@ -13850,7 +13616,7 @@ if i32.const 0 i32.const 376 - i32.const 348 + i32.const 346 i32.const 2 call $~lib/builtins/abort unreachable @@ -13869,7 +13635,7 @@ if i32.const 0 i32.const 376 - i32.const 349 + i32.const 347 i32.const 2 call $~lib/builtins/abort unreachable @@ -13911,7 +13677,7 @@ if i32.const 0 i32.const 376 - i32.const 352 + i32.const 350 i32.const 2 call $~lib/builtins/abort unreachable @@ -13930,7 +13696,7 @@ if i32.const 0 i32.const 376 - i32.const 353 + i32.const 351 i32.const 2 call $~lib/builtins/abort unreachable @@ -13971,7 +13737,7 @@ if i32.const 0 i32.const 376 - i32.const 356 + i32.const 354 i32.const 2 call $~lib/builtins/abort unreachable @@ -13990,7 +13756,7 @@ if i32.const 0 i32.const 376 - i32.const 357 + i32.const 355 i32.const 2 call $~lib/builtins/abort unreachable @@ -14031,7 +13797,7 @@ if i32.const 0 i32.const 376 - i32.const 360 + i32.const 358 i32.const 2 call $~lib/builtins/abort unreachable @@ -14050,7 +13816,7 @@ if i32.const 0 i32.const 376 - i32.const 361 + i32.const 359 i32.const 2 call $~lib/builtins/abort unreachable @@ -14091,7 +13857,7 @@ if i32.const 0 i32.const 376 - i32.const 364 + i32.const 362 i32.const 2 call $~lib/builtins/abort unreachable @@ -14110,7 +13876,7 @@ if i32.const 0 i32.const 376 - i32.const 365 + i32.const 363 i32.const 2 call $~lib/builtins/abort unreachable @@ -14151,7 +13917,7 @@ if i32.const 0 i32.const 376 - i32.const 368 + i32.const 366 i32.const 2 call $~lib/builtins/abort unreachable @@ -14170,7 +13936,7 @@ if i32.const 0 i32.const 376 - i32.const 369 + i32.const 367 i32.const 2 call $~lib/builtins/abort unreachable @@ -14211,7 +13977,7 @@ if i32.const 0 i32.const 376 - i32.const 372 + i32.const 370 i32.const 2 call $~lib/builtins/abort unreachable @@ -14230,7 +13996,7 @@ if i32.const 0 i32.const 376 - i32.const 373 + i32.const 371 i32.const 2 call $~lib/builtins/abort unreachable @@ -14271,7 +14037,7 @@ if i32.const 0 i32.const 376 - i32.const 376 + i32.const 374 i32.const 2 call $~lib/builtins/abort unreachable @@ -14290,7 +14056,7 @@ if i32.const 0 i32.const 376 - i32.const 377 + i32.const 375 i32.const 2 call $~lib/builtins/abort unreachable @@ -14331,7 +14097,7 @@ if i32.const 0 i32.const 376 - i32.const 380 + i32.const 378 i32.const 2 call $~lib/builtins/abort unreachable @@ -14350,7 +14116,7 @@ if i32.const 0 i32.const 376 - i32.const 381 + i32.const 379 i32.const 2 call $~lib/builtins/abort unreachable @@ -14391,7 +14157,7 @@ if i32.const 0 i32.const 376 - i32.const 384 + i32.const 382 i32.const 2 call $~lib/builtins/abort unreachable @@ -14410,7 +14176,7 @@ if i32.const 0 i32.const 376 - i32.const 385 + i32.const 383 i32.const 2 call $~lib/builtins/abort unreachable @@ -14451,7 +14217,7 @@ if i32.const 0 i32.const 376 - i32.const 388 + i32.const 386 i32.const 2 call $~lib/builtins/abort unreachable @@ -14470,7 +14236,7 @@ if i32.const 0 i32.const 376 - i32.const 389 + i32.const 387 i32.const 2 call $~lib/builtins/abort unreachable @@ -14605,7 +14371,7 @@ if i32.const 0 i32.const 376 - i32.const 402 + i32.const 400 i32.const 2 call $~lib/builtins/abort unreachable @@ -14620,7 +14386,7 @@ if i32.const 0 i32.const 376 - i32.const 405 + i32.const 403 i32.const 2 call $~lib/builtins/abort unreachable @@ -14635,7 +14401,7 @@ if i32.const 0 i32.const 376 - i32.const 408 + i32.const 406 i32.const 2 call $~lib/builtins/abort unreachable @@ -14650,7 +14416,7 @@ if i32.const 0 i32.const 376 - i32.const 416 + i32.const 414 i32.const 2 call $~lib/builtins/abort unreachable @@ -14662,7 +14428,7 @@ if i32.const 0 i32.const 376 - i32.const 417 + i32.const 415 i32.const 2 call $~lib/builtins/abort unreachable @@ -14677,7 +14443,7 @@ if i32.const 0 i32.const 376 - i32.const 419 + i32.const 417 i32.const 2 call $~lib/builtins/abort unreachable @@ -14704,7 +14470,7 @@ if i32.const 0 i32.const 376 - i32.const 432 + i32.const 430 i32.const 2 call $~lib/builtins/abort unreachable @@ -14716,7 +14482,7 @@ if i32.const 0 i32.const 376 - i32.const 433 + i32.const 431 i32.const 2 call $~lib/builtins/abort unreachable @@ -14735,7 +14501,7 @@ if i32.const 0 i32.const 376 - i32.const 443 + i32.const 441 i32.const 2 call $~lib/builtins/abort unreachable @@ -14746,7 +14512,7 @@ if i32.const 0 i32.const 376 - i32.const 446 + i32.const 444 i32.const 2 call $~lib/builtins/abort unreachable @@ -14759,7 +14525,7 @@ if i32.const 0 i32.const 376 - i32.const 454 + i32.const 452 i32.const 2 call $~lib/builtins/abort unreachable @@ -14771,7 +14537,7 @@ if i32.const 0 i32.const 376 - i32.const 455 + i32.const 453 i32.const 2 call $~lib/builtins/abort unreachable @@ -14782,7 +14548,7 @@ if i32.const 0 i32.const 376 - i32.const 457 + i32.const 455 i32.const 2 call $~lib/builtins/abort unreachable @@ -14807,7 +14573,7 @@ if i32.const 0 i32.const 376 - i32.const 470 + i32.const 468 i32.const 2 call $~lib/builtins/abort unreachable @@ -14819,7 +14585,7 @@ if i32.const 0 i32.const 376 - i32.const 471 + i32.const 469 i32.const 2 call $~lib/builtins/abort unreachable @@ -14838,7 +14604,7 @@ if i32.const 0 i32.const 376 - i32.const 481 + i32.const 479 i32.const 2 call $~lib/builtins/abort unreachable @@ -14849,7 +14615,7 @@ if i32.const 0 i32.const 376 - i32.const 484 + i32.const 482 i32.const 2 call $~lib/builtins/abort unreachable @@ -14860,7 +14626,7 @@ if i32.const 0 i32.const 376 - i32.const 492 + i32.const 490 i32.const 2 call $~lib/builtins/abort unreachable @@ -14872,7 +14638,7 @@ if i32.const 0 i32.const 376 - i32.const 493 + i32.const 491 i32.const 2 call $~lib/builtins/abort unreachable @@ -14885,7 +14651,7 @@ if i32.const 0 i32.const 376 - i32.const 495 + i32.const 493 i32.const 2 call $~lib/builtins/abort unreachable @@ -14908,7 +14674,7 @@ if i32.const 0 i32.const 376 - i32.const 508 + i32.const 506 i32.const 2 call $~lib/builtins/abort unreachable @@ -14920,7 +14686,7 @@ if i32.const 0 i32.const 376 - i32.const 509 + i32.const 507 i32.const 2 call $~lib/builtins/abort unreachable @@ -14942,7 +14708,7 @@ if i32.const 0 i32.const 376 - i32.const 520 + i32.const 518 i32.const 2 call $~lib/builtins/abort unreachable @@ -14958,7 +14724,7 @@ if i32.const 0 i32.const 376 - i32.const 529 + i32.const 527 i32.const 2 call $~lib/builtins/abort unreachable @@ -14970,7 +14736,7 @@ if i32.const 0 i32.const 376 - i32.const 530 + i32.const 528 i32.const 2 call $~lib/builtins/abort unreachable @@ -14986,7 +14752,7 @@ if i32.const 0 i32.const 376 - i32.const 533 + i32.const 531 i32.const 2 call $~lib/builtins/abort unreachable @@ -15014,7 +14780,7 @@ if i32.const 0 i32.const 376 - i32.const 547 + i32.const 545 i32.const 2 call $~lib/builtins/abort unreachable @@ -15026,7 +14792,7 @@ if i32.const 0 i32.const 376 - i32.const 548 + i32.const 546 i32.const 2 call $~lib/builtins/abort unreachable @@ -15047,7 +14813,7 @@ if i32.const 0 i32.const 376 - i32.const 573 + i32.const 571 i32.const 2 call $~lib/builtins/abort unreachable @@ -15090,7 +14856,7 @@ if i32.const 0 i32.const 376 - i32.const 587 + i32.const 585 i32.const 2 call $~lib/builtins/abort unreachable @@ -15106,7 +14872,7 @@ if i32.const 0 i32.const 376 - i32.const 588 + i32.const 586 i32.const 2 call $~lib/builtins/abort unreachable @@ -15123,7 +14889,7 @@ if i32.const 0 i32.const 376 - i32.const 597 + i32.const 595 i32.const 2 call $~lib/builtins/abort unreachable @@ -15135,7 +14901,7 @@ if i32.const 0 i32.const 376 - i32.const 598 + i32.const 596 i32.const 2 call $~lib/builtins/abort unreachable @@ -15152,7 +14918,7 @@ if i32.const 0 i32.const 376 - i32.const 605 + i32.const 603 i32.const 2 call $~lib/builtins/abort unreachable @@ -15181,7 +14947,7 @@ if i32.const 0 i32.const 376 - i32.const 620 + i32.const 618 i32.const 2 call $~lib/builtins/abort unreachable @@ -15193,7 +14959,7 @@ if i32.const 0 i32.const 376 - i32.const 621 + i32.const 619 i32.const 2 call $~lib/builtins/abort unreachable @@ -15216,7 +14982,7 @@ if i32.const 0 i32.const 376 - i32.const 631 + i32.const 629 i32.const 2 call $~lib/builtins/abort unreachable @@ -15233,7 +14999,7 @@ if i32.const 0 i32.const 376 - i32.const 640 + i32.const 638 i32.const 2 call $~lib/builtins/abort unreachable @@ -15245,7 +15011,7 @@ if i32.const 0 i32.const 376 - i32.const 641 + i32.const 639 i32.const 2 call $~lib/builtins/abort unreachable @@ -15262,7 +15028,7 @@ if i32.const 0 i32.const 376 - i32.const 648 + i32.const 646 i32.const 2 call $~lib/builtins/abort unreachable @@ -15291,7 +15057,7 @@ if i32.const 0 i32.const 376 - i32.const 663 + i32.const 661 i32.const 2 call $~lib/builtins/abort unreachable @@ -15303,7 +15069,7 @@ if i32.const 0 i32.const 376 - i32.const 664 + i32.const 662 i32.const 2 call $~lib/builtins/abort unreachable @@ -15327,7 +15093,7 @@ if i32.const 0 i32.const 376 - i32.const 674 + i32.const 672 i32.const 2 call $~lib/builtins/abort unreachable @@ -15343,7 +15109,7 @@ if i32.const 0 i32.const 376 - i32.const 678 + i32.const 676 i32.const 2 call $~lib/builtins/abort unreachable @@ -15359,7 +15125,7 @@ if i32.const 0 i32.const 376 - i32.const 681 + i32.const 679 i32.const 2 call $~lib/builtins/abort unreachable @@ -15371,7 +15137,7 @@ if i32.const 0 i32.const 376 - i32.const 684 + i32.const 682 i32.const 2 call $~lib/builtins/abort unreachable @@ -15387,7 +15153,7 @@ if i32.const 0 i32.const 376 - i32.const 692 + i32.const 690 i32.const 2 call $~lib/builtins/abort unreachable @@ -15399,7 +15165,7 @@ if i32.const 0 i32.const 376 - i32.const 693 + i32.const 691 i32.const 2 call $~lib/builtins/abort unreachable @@ -15415,7 +15181,7 @@ if i32.const 0 i32.const 376 - i32.const 695 + i32.const 693 i32.const 2 call $~lib/builtins/abort unreachable @@ -15443,7 +15209,7 @@ if i32.const 0 i32.const 376 - i32.const 708 + i32.const 706 i32.const 2 call $~lib/builtins/abort unreachable @@ -15455,7 +15221,7 @@ if i32.const 0 i32.const 376 - i32.const 709 + i32.const 707 i32.const 2 call $~lib/builtins/abort unreachable @@ -15477,7 +15243,7 @@ if i32.const 0 i32.const 376 - i32.const 719 + i32.const 717 i32.const 2 call $~lib/builtins/abort unreachable @@ -15493,7 +15259,7 @@ if i32.const 0 i32.const 376 - i32.const 723 + i32.const 721 i32.const 2 call $~lib/builtins/abort unreachable @@ -15509,7 +15275,7 @@ if i32.const 0 i32.const 376 - i32.const 726 + i32.const 724 i32.const 2 call $~lib/builtins/abort unreachable @@ -15521,7 +15287,7 @@ if i32.const 0 i32.const 376 - i32.const 729 + i32.const 727 i32.const 2 call $~lib/builtins/abort unreachable @@ -15537,7 +15303,7 @@ if i32.const 0 i32.const 376 - i32.const 737 + i32.const 735 i32.const 2 call $~lib/builtins/abort unreachable @@ -15549,7 +15315,7 @@ if i32.const 0 i32.const 376 - i32.const 738 + i32.const 736 i32.const 2 call $~lib/builtins/abort unreachable @@ -15565,7 +15331,7 @@ if i32.const 0 i32.const 376 - i32.const 740 + i32.const 738 i32.const 2 call $~lib/builtins/abort unreachable @@ -15593,7 +15359,7 @@ if i32.const 0 i32.const 376 - i32.const 753 + i32.const 751 i32.const 2 call $~lib/builtins/abort unreachable @@ -15603,7 +15369,7 @@ if i32.const 0 i32.const 376 - i32.const 754 + i32.const 752 i32.const 2 call $~lib/builtins/abort unreachable @@ -15664,7 +15430,7 @@ if i32.const 0 i32.const 376 - i32.const 843 + i32.const 841 i32.const 2 call $~lib/builtins/abort unreachable @@ -15710,7 +15476,7 @@ if i32.const 0 i32.const 376 - i32.const 847 + i32.const 845 i32.const 2 call $~lib/builtins/abort unreachable @@ -15757,7 +15523,7 @@ if i32.const 0 i32.const 376 - i32.const 851 + i32.const 849 i32.const 2 call $~lib/builtins/abort unreachable @@ -15804,7 +15570,7 @@ if i32.const 0 i32.const 376 - i32.const 855 + i32.const 853 i32.const 2 call $~lib/builtins/abort unreachable @@ -15887,7 +15653,7 @@ if i32.const 0 i32.const 376 - i32.const 875 + i32.const 873 i32.const 2 call $~lib/builtins/abort unreachable @@ -15908,7 +15674,7 @@ if i32.const 0 i32.const 376 - i32.const 878 + i32.const 876 i32.const 2 call $~lib/builtins/abort unreachable @@ -15923,7 +15689,7 @@ if i32.const 0 i32.const 376 - i32.const 881 + i32.const 879 i32.const 2 call $~lib/builtins/abort unreachable @@ -15938,7 +15704,7 @@ if i32.const 0 i32.const 376 - i32.const 884 + i32.const 882 i32.const 2 call $~lib/builtins/abort unreachable @@ -15953,7 +15719,7 @@ if i32.const 0 i32.const 376 - i32.const 887 + i32.const 885 i32.const 2 call $~lib/builtins/abort unreachable @@ -15968,7 +15734,7 @@ if i32.const 0 i32.const 376 - i32.const 890 + i32.const 888 i32.const 2 call $~lib/builtins/abort unreachable @@ -15983,7 +15749,7 @@ if i32.const 0 i32.const 376 - i32.const 893 + i32.const 891 i32.const 2 call $~lib/builtins/abort unreachable @@ -16127,7 +15893,7 @@ if i32.const 0 i32.const 376 - i32.const 930 + i32.const 928 i32.const 2 call $~lib/builtins/abort unreachable @@ -16186,7 +15952,7 @@ if i32.const 0 i32.const 376 - i32.const 941 + i32.const 939 i32.const 2 call $~lib/builtins/abort unreachable @@ -16207,7 +15973,7 @@ if i32.const 0 i32.const 376 - i32.const 942 + i32.const 940 i32.const 2 call $~lib/builtins/abort unreachable @@ -16228,7 +15994,7 @@ if i32.const 0 i32.const 376 - i32.const 943 + i32.const 941 i32.const 2 call $~lib/builtins/abort unreachable @@ -16249,7 +16015,7 @@ if i32.const 0 i32.const 376 - i32.const 944 + i32.const 942 i32.const 2 call $~lib/builtins/abort unreachable @@ -16276,7 +16042,7 @@ if i32.const 0 i32.const 376 - i32.const 945 + i32.const 943 i32.const 2 call $~lib/builtins/abort unreachable @@ -16297,7 +16063,7 @@ if i32.const 0 i32.const 376 - i32.const 946 + i32.const 944 i32.const 2 call $~lib/builtins/abort unreachable @@ -16341,7 +16107,7 @@ if i32.const 0 i32.const 376 - i32.const 948 + i32.const 946 i32.const 2 call $~lib/builtins/abort unreachable @@ -16423,7 +16189,7 @@ if i32.const 0 i32.const 376 - i32.const 958 + i32.const 956 i32.const 2 call $~lib/builtins/abort unreachable @@ -16437,7 +16203,7 @@ if i32.const 0 i32.const 376 - i32.const 959 + i32.const 957 i32.const 2 call $~lib/builtins/abort unreachable @@ -16451,7 +16217,7 @@ if i32.const 0 i32.const 376 - i32.const 960 + i32.const 958 i32.const 2 call $~lib/builtins/abort unreachable @@ -16465,7 +16231,7 @@ if i32.const 0 i32.const 376 - i32.const 961 + i32.const 959 i32.const 2 call $~lib/builtins/abort unreachable @@ -16492,7 +16258,7 @@ if i32.const 0 i32.const 376 - i32.const 963 + i32.const 961 i32.const 2 call $~lib/builtins/abort unreachable @@ -16519,7 +16285,7 @@ if i32.const 0 i32.const 376 - i32.const 964 + i32.const 962 i32.const 2 call $~lib/builtins/abort unreachable @@ -16546,7 +16312,7 @@ if i32.const 0 i32.const 376 - i32.const 965 + i32.const 963 i32.const 2 call $~lib/builtins/abort unreachable @@ -16573,7 +16339,7 @@ if i32.const 0 i32.const 376 - i32.const 966 + i32.const 964 i32.const 2 call $~lib/builtins/abort unreachable @@ -16595,7 +16361,7 @@ if i32.const 0 i32.const 376 - i32.const 970 + i32.const 968 i32.const 2 call $~lib/builtins/abort unreachable @@ -16615,7 +16381,7 @@ if i32.const 0 i32.const 376 - i32.const 971 + i32.const 969 i32.const 2 call $~lib/builtins/abort unreachable @@ -16665,7 +16431,7 @@ if i32.const 0 i32.const 376 - i32.const 974 + i32.const 972 i32.const 2 call $~lib/builtins/abort unreachable @@ -16715,7 +16481,7 @@ if i32.const 0 i32.const 376 - i32.const 977 + i32.const 975 i32.const 2 call $~lib/builtins/abort unreachable @@ -16766,7 +16532,7 @@ if i32.const 0 i32.const 376 - i32.const 980 + i32.const 978 i32.const 2 call $~lib/builtins/abort unreachable @@ -16846,16 +16612,121 @@ local.get $8 call $~lib/rt/pure/__release ) - (func $std/array/main (; 204 ;) (type $FUNCSIG$v) + (func $start (; 199 ;) (type $FUNCSIG$v) global.get $~lib/started - i32.eqz if - call $start:std/array + return + else i32.const 1 global.set $~lib/started end + call $start:std/array ) - (func $~lib/rt/pure/__visit (; 205 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/markGray (; 200 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const 1879048192 + i32.and + i32.const 268435456 + i32.ne + if + local.get $0 + local.get $1 + i32.const -1879048193 + i32.and + i32.const 268435456 + i32.or + i32.store offset=4 + local.get $0 + i32.const 16 + i32.add + i32.const 2 + call $~lib/rt/__visit_members + end + ) + (func $~lib/rt/pure/scanBlack (; 201 ;) (type $FUNCSIG$vi) (param $0 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const -1879048193 + i32.and + i32.store offset=4 + local.get $0 + i32.const 16 + i32.add + i32.const 4 + call $~lib/rt/__visit_members + ) + (func $~lib/rt/pure/scan (; 202 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const 1879048192 + i32.and + i32.const 268435456 + i32.eq + if + local.get $1 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + if + local.get $0 + call $~lib/rt/pure/scanBlack + else + local.get $0 + local.get $1 + i32.const -1879048193 + i32.and + i32.const 536870912 + i32.or + i32.store offset=4 + local.get $0 + i32.const 16 + i32.add + i32.const 3 + call $~lib/rt/__visit_members + end + end + ) + (func $~lib/rt/pure/collectWhite (; 203 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const 1879048192 + i32.and + i32.const 536870912 + i32.eq + if (result i32) + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + else + i32.const 0 + end + if + local.get $0 + local.get $1 + i32.const -1879048193 + i32.and + i32.store offset=4 + local.get $0 + i32.const 16 + i32.add + i32.const 5 + call $~lib/rt/__visit_members + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + end + ) + (func $~lib/rt/pure/__visit (; 204 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 7460 i32.lt_u @@ -16900,7 +16771,7 @@ i32.le_u if i32.const 0 - i32.const 128 + i32.const 232 i32.const 75 i32.const 17 call $~lib/builtins/abort @@ -16933,7 +16804,7 @@ i32.ne if i32.const 0 - i32.const 128 + i32.const 232 i32.const 86 i32.const 6 call $~lib/builtins/abort @@ -16958,14 +16829,14 @@ br $break|0 end i32.const 0 - i32.const 128 + i32.const 232 i32.const 97 i32.const 24 call $~lib/builtins/abort unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 206 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 205 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -16998,7 +16869,7 @@ end end ) - (func $~lib/rt/__visit_members (; 207 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 206 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$27 @@ -17069,7 +16940,7 @@ call $~lib/rt/pure/__visit end ) - (func $null (; 208 ;) (type $FUNCSIG$v) + (func $null (; 207 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/array.ts b/tests/compiler/std/array.ts index d7cef2eb..e92b4b2e 100644 --- a/tests/compiler/std/array.ts +++ b/tests/compiler/std/array.ts @@ -1,8 +1,6 @@ import { Array } from "array"; import { COMPARATOR } from "util/sort"; -@start export function main(): void {} - // Obtains the internal capacity of an array from its backing buffer. function internalCapacity(array: Array): i32 { // the memory region used by the backing buffer might still be larger in that the ArrayBuffer diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index aa775d7f..05e8f317 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -1,8 +1,8 @@ (module (type $FUNCSIG$iii (func (param i32 i32) (result i32))) - (type $FUNCSIG$v (func)) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) + (type $FUNCSIG$v (func)) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) @@ -33,13 +33,13 @@ (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) (memory $0 1) - (data (i32.const 8) "\1e\00\00\00\01\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") - (data (i32.const 56) "(\00\00\00\01\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") - (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 160) "$\00\00\00\01\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") - (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 256) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 304) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 8) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 56) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 112) "\1e\00\00\00\01\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") + (data (i32.const 160) "(\00\00\00\01\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") + (data (i32.const 216) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 264) "$\00\00\00\01\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") + (data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") (data (i32.const 360) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 400) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00a\00b\00c\00") (data (i32.const 424) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\02\03\04\05") @@ -237,13 +237,8 @@ (global $~lib/started (mut i32) (i32.const 0)) (global $~lib/rt/__rtti_base i32 (i32.const 7696)) (global $~lib/heap/__heap_base i32 (i32.const 7908)) + (export "__start" (func $start)) (export "memory" (memory $0)) - (export "__alloc" (func $~lib/rt/tlsf/__alloc)) - (export "__retain" (func $~lib/rt/pure/__retain)) - (export "__release" (func $~lib/rt/pure/__release)) - (export "__collect" (func $~lib/rt/pure/__collect)) - (export "__rtti_base" (global $~lib/rt/__rtti_base)) - (export "main" (func $std/array/main)) (func $~lib/rt/tlsf/removeBlock (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -264,7 +259,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 276 i32.const 13 call $~lib/builtins/abort @@ -289,7 +284,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 278 i32.const 13 call $~lib/builtins/abort @@ -341,7 +336,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 291 i32.const 13 call $~lib/builtins/abort @@ -479,7 +474,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 204 i32.const 13 call $~lib/builtins/abort @@ -494,7 +489,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 206 i32.const 13 call $~lib/builtins/abort @@ -593,7 +588,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 227 i32.const 15 call $~lib/builtins/abort @@ -656,7 +651,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 242 i32.const 13 call $~lib/builtins/abort @@ -672,7 +667,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 243 i32.const 13 call $~lib/builtins/abort @@ -729,7 +724,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 259 i32.const 13 call $~lib/builtins/abort @@ -856,7 +851,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 385 i32.const 4 call $~lib/builtins/abort @@ -881,7 +876,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 395 i32.const 15 call $~lib/builtins/abort @@ -912,7 +907,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 407 i32.const 4 call $~lib/builtins/abort @@ -1138,8 +1133,8 @@ i32.const 1073741808 i32.ge_u if - i32.const 72 - i32.const 24 + i32.const 176 + i32.const 128 i32.const 447 i32.const 29 call $~lib/builtins/abort @@ -1233,7 +1228,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 337 i32.const 13 call $~lib/builtins/abort @@ -1300,7 +1295,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 350 i32.const 17 call $~lib/builtins/abort @@ -1418,7 +1413,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 364 i32.const 13 call $~lib/builtins/abort @@ -1527,7 +1522,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 477 i32.const 15 call $~lib/builtins/abort @@ -1545,7 +1540,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 479 i32.const 13 call $~lib/builtins/abort @@ -1612,7 +1607,7 @@ i32.eqz if i32.const 0 - i32.const 128 + i32.const 232 i32.const 104 i32.const 2 call $~lib/builtins/abort @@ -1633,7 +1628,7 @@ i32.eqz if i32.const 0 - i32.const 128 + i32.const 232 i32.const 107 i32.const 13 call $~lib/builtins/abort @@ -1664,7 +1659,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 531 i32.const 2 call $~lib/builtins/abort @@ -1690,8 +1685,8 @@ i32.load i32.gt_u if - i32.const 176 - i32.const 232 + i32.const 280 + i32.const 336 i32.const 22 i32.const 27 call $~lib/builtins/abort @@ -3129,7 +3124,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 561 i32.const 13 call $~lib/builtins/abort @@ -3149,7 +3144,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 562 i32.const 2 call $~lib/builtins/abort @@ -3259,7 +3254,7 @@ i32.eqz if i32.const 0 - i32.const 128 + i32.const 232 i32.const 115 i32.const 13 call $~lib/builtins/abort @@ -3298,7 +3293,7 @@ i32.eqz if i32.const 0 - i32.const 128 + i32.const 232 i32.const 124 i32.const 15 call $~lib/builtins/abort @@ -3354,274 +3349,7 @@ call $~lib/rt/pure/decrement end ) - (func $~lib/rt/pure/markGray (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.ne - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 268435456 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 2 - call $~lib/rt/__visit_members - end - ) - (func $~lib/rt/pure/scanBlack (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 4 - call $~lib/rt/__visit_members - ) - (func $~lib/rt/pure/scan (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 268435456 - i32.eq - if - local.get $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - if - local.get $0 - call $~lib/rt/pure/scanBlack - else - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 536870912 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 3 - call $~lib/rt/__visit_members - end - end - ) - (func $~lib/rt/pure/collectWhite (; 30 ;) (type $FUNCSIG$vi) (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 1879048192 - i32.and - i32.const 536870912 - i32.eq - if (result i32) - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - else - i32.const 0 - end - if - local.get $0 - local.get $1 - i32.const 1879048192 - i32.const -1 - i32.xor - i32.and - i32.const 0 - i32.or - i32.store offset=4 - local.get $0 - i32.const 16 - i32.add - i32.const 5 - call $~lib/rt/__visit_members - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - end - ) - (func $~lib/rt/pure/__collect (; 31 ;) (type $FUNCSIG$v) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/rt/pure/ROOTS - local.set $0 - local.get $0 - local.set $1 - block $break|0 - block - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - end - loop $repeat|0 - local.get $2 - local.get $3 - i32.lt_u - i32.eqz - br_if $break|0 - local.get $2 - i32.load - local.set $4 - local.get $4 - i32.load offset=4 - local.set $5 - local.get $5 - i32.const 1879048192 - i32.and - i32.const 805306368 - i32.eq - if (result i32) - local.get $5 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - else - i32.const 0 - end - if - local.get $4 - call $~lib/rt/pure/markGray - local.get $1 - local.get $4 - i32.store - local.get $1 - i32.const 4 - i32.add - local.set $1 - else - local.get $5 - i32.const 1879048192 - i32.and - i32.const 0 - i32.eq - if (result i32) - local.get $5 - i32.const 268435455 - i32.and - i32.eqz - else - i32.const 0 - end - if - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/freeBlock - else - local.get $4 - local.get $5 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - end - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $repeat|0 - unreachable - end - unreachable - end - local.get $1 - global.set $~lib/rt/pure/CUR - block $break|1 - local.get $0 - local.set $5 - loop $repeat|1 - local.get $5 - local.get $1 - i32.lt_u - i32.eqz - br_if $break|1 - local.get $5 - i32.load - call $~lib/rt/pure/scan - local.get $5 - i32.const 4 - i32.add - local.set $5 - br $repeat|1 - unreachable - end - unreachable - end - block $break|2 - local.get $0 - local.set $5 - loop $repeat|2 - local.get $5 - local.get $1 - i32.lt_u - i32.eqz - br_if $break|2 - local.get $5 - i32.load - local.set $4 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const -2147483648 - i32.const -1 - i32.xor - i32.and - i32.store offset=4 - local.get $4 - call $~lib/rt/pure/collectWhite - local.get $5 - i32.const 4 - i32.add - local.set $5 - br $repeat|2 - unreachable - end - unreachable - end - local.get $0 - global.set $~lib/rt/pure/CUR - ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 32 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 27 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3631,8 +3359,8 @@ i32.shr_u i32.gt_u if - i32.const 272 - i32.const 320 + i32.const 24 + i32.const 72 i32.const 14 i32.const 56 call $~lib/builtins/abort @@ -3692,7 +3420,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/array/Array#constructor (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -3714,7 +3442,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array.isArray<~lib/array/Array | null> (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/array/Array | null> (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3732,7 +3460,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array.isArray<~lib/array/Array> (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/array/Array> (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3750,7 +3478,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/array/P#constructor (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/P#constructor (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -3762,7 +3490,7 @@ end local.get $0 ) - (func $~lib/array/Array.isArray (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3780,7 +3508,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint8Array#constructor (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#constructor (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -3796,7 +3524,7 @@ local.set $0 local.get $0 ) - (func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3814,7 +3542,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array.isArray (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 if (result i32) local.get $0 @@ -3824,7 +3552,7 @@ i32.const 0 end ) - (func $~lib/array/Array.isArray<~lib/string/String> (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/string/String> (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3842,7 +3570,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/rt/__allocArray (; 42 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/__allocArray (; 37 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -3880,7 +3608,7 @@ end local.get $4 ) - (func $~lib/memory/memory.fill (; 43 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 38 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4143,7 +3871,7 @@ end end ) - (func $~lib/array/Array#fill (; 44 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 39 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -4220,11 +3948,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#get:length (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4233,7 +3961,7 @@ i32.add i32.load8_u ) - (func $~lib/array/Array#__get (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -4241,7 +3969,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -4252,7 +3980,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $std/array/isArraysEqual (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -4338,7 +4066,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#fill (; 49 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 44 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -4425,11 +4153,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#get:length (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4438,7 +4166,7 @@ i32.add i32.load ) - (func $~lib/array/Array#__get (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -4446,7 +4174,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -4457,7 +4185,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $std/array/isArraysEqual (; 53 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -4543,17 +4271,17 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#get:length (; 54 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub i32.load offset=12 ) - (func $std/array/internalCapacity (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/internalCapacity (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -4574,7 +4302,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/rt/tlsf/reallocateBlock (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 52 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4594,7 +4322,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 493 i32.const 13 call $~lib/builtins/abort @@ -4707,12 +4435,12 @@ call $~lib/rt/tlsf/insertBlock local.get $8 ) - (func $~lib/rt/tlsf/__realloc (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__realloc (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 553 i32.const 13 call $~lib/builtins/abort @@ -4732,7 +4460,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 128 i32.const 554 i32.const 2 call $~lib/builtins/abort @@ -4747,7 +4475,7 @@ i32.const 16 i32.add ) - (func $~lib/array/ensureSize (; 59 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureSize (; 54 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4767,7 +4495,7 @@ i32.shr_u i32.gt_u if - i32.const 272 + i32.const 24 i32.const 488 i32.const 14 i32.const 47 @@ -4810,7 +4538,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array#push (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (; 55 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4837,7 +4565,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#__unchecked_get (; 61 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 56 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4846,7 +4574,7 @@ i32.add i32.load ) - (func $~lib/array/Array#__get (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -4854,7 +4582,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -4865,7 +4593,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $~lib/array/Array#pop (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#pop (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -4898,7 +4626,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#concat (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#concat (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4931,7 +4659,7 @@ local.get $1 call $~lib/rt/pure/__release block - i32.const 272 + i32.const 24 i32.const 488 i32.const 217 i32.const 59 @@ -4975,7 +4703,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/array/Array#copyWithin (; 65 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#copyWithin (; 60 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -5104,7 +4832,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $std/array/isArraysEqual (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -5190,7 +4918,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#unshift (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#unshift (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5223,7 +4951,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#shift (; 68 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#shift (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5272,7 +5000,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#reverse (; 69 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#reverse (; 64 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5326,7 +5054,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#indexOf (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 65 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5395,7 +5123,7 @@ end i32.const -1 ) - (func $~lib/array/Array#includes (; 71 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 local.get $2 @@ -5403,7 +5131,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#splice (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5511,7 +5239,7 @@ i32.store offset=12 local.get $6 ) - (func $~lib/array/Array#__unchecked_set (; 73 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__unchecked_set (; 68 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -5521,7 +5249,7 @@ local.get $2 i32.store ) - (func $~lib/array/Array#__set (; 74 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 69 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -5547,7 +5275,7 @@ i32.store offset=12 end ) - (func $start:std/array~anonymous|0 (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|0 (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5560,7 +5288,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#findIndex (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 71 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5617,7 +5345,7 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 77 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5630,7 +5358,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|2 (; 78 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 73 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5643,7 +5371,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|3 (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5660,7 +5388,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|4 (; 80 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|4 (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5673,7 +5401,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|5 (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 76 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5689,7 +5417,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|6 (; 82 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 77 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5702,7 +5430,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#every (; 83 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 78 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5762,7 +5490,7 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 84 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5775,7 +5503,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|8 (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 80 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5792,7 +5520,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|9 (; 86 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5805,7 +5533,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|10 (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 82 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5821,7 +5549,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|11 (; 88 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5834,7 +5562,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#some (; 89 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 84 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5891,7 +5619,7 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 90 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5904,7 +5632,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|13 (; 91 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 86 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5921,7 +5649,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|14 (; 92 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5934,7 +5662,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|15 (; 93 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 88 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5950,7 +5678,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|16 (; 94 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 89 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -5961,7 +5689,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#forEach (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 90 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6011,7 +5739,7 @@ unreachable end ) - (func $start:std/array~anonymous|17 (; 96 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 91 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6026,7 +5754,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|18 (; 97 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|18 (; 92 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6037,7 +5765,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|19 (; 98 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 93 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6051,7 +5779,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|20 (; 99 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 94 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6162,7 +5890,7 @@ if i32.const 0 i32.const 376 - i32.const 570 + i32.const 568 i32.const 6 call $~lib/builtins/abort unreachable @@ -6171,7 +5899,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|21 (; 100 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 95 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) (local $3 f32) local.get $2 call $~lib/rt/pure/__retain @@ -6183,7 +5911,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#map (; 101 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 96 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6255,11 +5983,11 @@ end local.get $3 ) - (func $~lib/array/Array#get:length (; 102 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 97 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 103 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__unchecked_get (; 98 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $0 i32.load offset=4 local.get $1 @@ -6268,7 +5996,7 @@ i32.add f32.load ) - (func $~lib/array/Array#__get (; 104 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 99 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=8 @@ -6276,7 +6004,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -6287,7 +6015,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $start:std/array~anonymous|22 (; 105 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|22 (; 100 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6306,7 +6034,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#map (; 106 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 101 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6377,7 +6105,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|23 (; 107 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 102 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6392,7 +6120,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|24 (; 108 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 103 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6410,7 +6138,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|25 (; 109 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 104 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6423,7 +6151,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#filter (; 110 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 105 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6492,7 +6220,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|26 (; 111 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 106 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6513,7 +6241,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|27 (; 112 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 107 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6530,7 +6258,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|28 (; 113 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 108 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6550,7 +6278,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|29 (; 114 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 109 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6563,7 +6291,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduce (; 115 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 110 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6621,7 +6349,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|30 (; 116 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|30 (; 111 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6634,7 +6362,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|31 (; 117 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|31 (; 112 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6652,7 +6380,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduce (; 118 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 113 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6710,7 +6438,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|32 (; 119 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 114 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6728,7 +6456,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|33 (; 120 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 115 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6745,7 +6473,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|34 (; 121 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|34 (; 116 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6758,7 +6486,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|35 (; 122 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 117 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6774,7 +6502,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|36 (; 123 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|36 (; 118 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6787,7 +6515,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduceRight (; 124 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 119 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -6832,7 +6560,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|37 (; 125 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|37 (; 120 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6845,7 +6573,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|38 (; 126 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|38 (; 121 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6863,7 +6591,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduceRight (; 127 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 122 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -6908,7 +6636,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|39 (; 128 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|39 (; 123 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6926,7 +6654,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|40 (; 129 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|40 (; 124 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6943,7 +6671,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|41 (; 130 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|41 (; 125 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6956,7 +6684,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|42 (; 131 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|42 (; 126 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6972,7 +6700,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/math/murmurHash3 (; 132 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 127 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -7001,7 +6729,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 133 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 128 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -7036,7 +6764,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 134 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 129 ;) (type $FUNCSIG$vj) (param $0 i64) local.get $0 i64.eqz if @@ -7065,7 +6793,7 @@ call $~lib/math/splitMix32 global.set $~lib/math/random_state1_32 ) - (func $~lib/util/sort/insertionSort (; 135 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 130 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f32) (local $5 i32) @@ -7157,7 +6885,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 136 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 131 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7452,7 +7180,7 @@ local.get $10 f32.store ) - (func $~lib/array/Array#sort (; 137 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 132 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -7531,7 +7259,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 138 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 133 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -7564,7 +7292,7 @@ i32.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 134 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -7583,12 +7311,12 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/builtins/isNaN (; 140 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/builtins/isNaN (; 135 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.ne ) - (func $std/array/isArraysEqual (; 141 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 136 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -7688,7 +7416,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/util/sort/insertionSort (; 142 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 137 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f64) (local $5 i32) @@ -7780,7 +7508,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 143 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 138 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8075,7 +7803,7 @@ local.get $10 f64.store ) - (func $~lib/array/Array#sort (; 144 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -8154,7 +7882,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 145 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 140 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -8187,7 +7915,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 141 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -8206,11 +7934,11 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/array/Array#get:length (; 147 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 142 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 148 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__unchecked_get (; 143 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $0 i32.load offset=4 local.get $1 @@ -8219,7 +7947,7 @@ i32.add f64.load ) - (func $~lib/array/Array#__get (; 149 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 144 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=8 @@ -8227,7 +7955,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -8238,12 +7966,12 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $~lib/builtins/isNaN (; 150 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 145 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $std/array/isArraysEqual (; 151 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 146 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -8343,7 +8071,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/util/sort/insertionSort (; 152 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 147 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8435,7 +8163,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 153 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 148 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8730,7 +8458,7 @@ local.get $10 i32.store ) - (func $~lib/array/Array#sort (; 154 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 149 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8807,12 +8535,12 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 155 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 150 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 156 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 151 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -8831,7 +8559,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/util/sort/insertionSort (; 157 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 152 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8923,7 +8651,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 158 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 153 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9218,7 +8946,7 @@ local.get $10 i32.store ) - (func $~lib/array/Array#sort (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 154 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9295,7 +9023,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 160 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 155 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -9304,7 +9032,7 @@ i32.lt_u i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 161 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 156 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -9323,13 +9051,13 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/array/Array.create (; 162 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create (; 157 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 268435452 i32.gt_u if - i32.const 272 + i32.const 24 i32.const 488 i32.const 45 i32.const 61 @@ -9354,7 +9082,7 @@ call $~lib/memory/memory.fill local.get $1 ) - (func $std/array/createReverseOrderedArray (; 163 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 158 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -9388,7 +9116,7 @@ end local.get $1 ) - (func $~lib/math/NativeMath.random (; 164 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 159 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -9445,7 +9173,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 165 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 160 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -9479,12 +9207,12 @@ end local.get $1 ) - (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 166 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 161 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $std/array/isSorted (; 167 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 162 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9544,7 +9272,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted (; 168 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 163 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -9559,7 +9287,7 @@ if i32.const 0 i32.const 376 - i32.const 832 + i32.const 830 i32.const 2 call $~lib/builtins/abort unreachable @@ -9569,7 +9297,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/array/assertSortedDefault (; 169 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSortedDefault (; 164 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -9582,33 +9310,33 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|43 (; 170 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|43 (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $start:std/array~anonymous|44 (; 171 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 166 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $start:std/array~anonymous|45 (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|45 (; 167 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $start:std/array~anonymous|46 (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|46 (; 168 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $~lib/array/Array.create<~lib/array/Array> (; 174 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create<~lib/array/Array> (; 169 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 268435452 i32.gt_u if - i32.const 272 + i32.const 24 i32.const 488 i32.const 45 i32.const 61 @@ -9633,7 +9361,7 @@ call $~lib/memory/memory.fill local.get $1 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 175 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 170 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -9663,7 +9391,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/array/Array>#__set (; 176 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__set (; 171 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -9711,7 +9439,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedNestedArray (; 177 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 172 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9755,7 +9483,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|47 (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -9777,7 +9505,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 179 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 174 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9877,7 +9605,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#sort (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#sort (; 175 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9952,11 +9680,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#get:length (; 181 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#get:length (; 176 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 182 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -9966,7 +9694,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#__get (; 183 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__get (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -9986,7 +9714,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -9997,7 +9725,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get ) - (func $std/array/isSorted<~lib/array/Array> (; 184 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/array/Array> (; 179 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10069,7 +9797,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $std/array/assertSorted<~lib/array/Array> (; 185 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/array/Array> (; 180 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10084,7 +9812,7 @@ if i32.const 0 i32.const 376 - i32.const 832 + i32.const 830 i32.const 2 call $~lib/builtins/abort unreachable @@ -10094,13 +9822,13 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array.create> (; 186 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create> (; 181 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 268435452 i32.gt_u if - i32.const 272 + i32.const 24 i32.const 488 i32.const 45 i32.const 61 @@ -10125,7 +9853,7 @@ call $~lib/memory/memory.fill local.get $1 ) - (func $std/array/Proxy#constructor (; 187 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/Proxy#constructor (; 182 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -10140,7 +9868,7 @@ i32.store local.get $0 ) - (func $~lib/array/Array>#__unchecked_set (; 188 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__unchecked_set (; 183 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -10170,7 +9898,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array>#__set (; 189 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__set (; 184 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -10218,7 +9946,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedElementsArray (; 190 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 185 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10258,7 +9986,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|48 (; 191 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 186 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10278,7 +10006,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort> (; 192 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort> (; 187 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10378,7 +10106,7 @@ unreachable end ) - (func $~lib/array/Array>#sort (; 193 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 188 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10453,11 +10181,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array>#get:length (; 194 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#get:length (; 189 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array>#__unchecked_get (; 195 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__unchecked_get (; 190 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10467,7 +10195,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array>#__get (; 196 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__get (; 191 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -10487,7 +10215,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -10498,7 +10226,7 @@ local.get $1 call $~lib/array/Array>#__unchecked_get ) - (func $std/array/isSorted> (; 197 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted> (; 192 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10570,7 +10298,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $std/array/assertSorted> (; 198 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 193 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10585,7 +10313,7 @@ if i32.const 0 i32.const 376 - i32.const 832 + i32.const 830 i32.const 2 call $~lib/builtins/abort unreachable @@ -10595,7 +10323,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 199 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 194 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10695,7 +10423,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String | null>#sort (; 200 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#sort (; 195 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10770,11 +10498,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String | null>#get:length (; 201 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#get:length (; 196 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (; 202 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (; 197 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10784,7 +10512,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String | null>#__get (; 203 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__get (; 198 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -10792,7 +10520,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -10803,7 +10531,7 @@ local.get $1 call $~lib/array/Array<~lib/string/String | null>#__unchecked_get ) - (func $std/array/isSorted<~lib/string/String | null> (; 204 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String | null> (; 199 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10875,7 +10603,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $std/array/assertSorted<~lib/string/String | null> (; 205 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null> (; 200 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10890,7 +10618,7 @@ if i32.const 0 i32.const 376 - i32.const 832 + i32.const 830 i32.const 2 call $~lib/builtins/abort unreachable @@ -10900,7 +10628,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String#get:length (; 206 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 201 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -10908,7 +10636,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 207 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/string/compareImpl (; 202 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -10972,7 +10700,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 208 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 203 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11078,7 +10806,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 209 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 204 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -11099,7 +10827,7 @@ local.get $1 call $std/array/assertSorted<~lib/string/String | null> ) - (func $~lib/string/String.__eq (; 210 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 205 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -11172,7 +10900,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__ne (; 211 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 206 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11191,7 +10919,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/isArraysEqual<~lib/string/String | null> (; 212 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual<~lib/string/String | null> (; 207 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11289,13 +11017,13 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $~lib/array/Array.create<~lib/string/String> (; 213 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create<~lib/string/String> (; 208 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 268435452 i32.gt_u if - i32.const 272 + i32.const 24 i32.const 488 i32.const 45 i32.const 61 @@ -11320,7 +11048,7 @@ call $~lib/memory/memory.fill local.get $1 ) - (func $~lib/string/String#charAt (; 214 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#charAt (; 209 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 i32.const 0 @@ -11358,7 +11086,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#concat (; 215 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 210 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11436,7 +11164,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 216 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 211 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11459,7 +11187,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/createRandomString (; 217 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 212 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -11526,7 +11254,7 @@ end local.get $1 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 218 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 213 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -11556,7 +11284,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/string/String>#__set (; 219 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__set (; 214 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -11604,7 +11332,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createRandomStringArray (; 220 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomStringArray (; 215 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11642,7 +11370,7 @@ end local.get $1 ) - (func $~lib/util/sort/insertionSort<~lib/string/String> (; 221 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String> (; 216 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11742,7 +11470,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String>#sort (; 222 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#sort (; 217 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11817,11 +11545,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#get:length (; 223 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (; 218 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 224 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 219 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -11831,7 +11559,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#__get (; 225 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 220 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -11851,7 +11579,7 @@ i32.shr_u i32.ge_u if - i32.const 176 + i32.const 280 i32.const 488 i32.const 109 i32.const 61 @@ -11862,7 +11590,7 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get ) - (func $std/array/isSorted<~lib/string/String> (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String> (; 221 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11934,7 +11662,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $std/array/assertSorted<~lib/string/String> (; 227 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String> (; 222 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11949,7 +11677,7 @@ if i32.const 0 i32.const 376 - i32.const 832 + i32.const 830 i32.const 2 call $~lib/builtins/abort unreachable @@ -11959,7 +11687,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 228 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 223 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12065,7 +11793,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/assertSorted<~lib/string/String>|trampoline (; 229 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String>|trampoline (; 224 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -12086,7 +11814,7 @@ local.get $1 call $std/array/assertSorted<~lib/string/String> ) - (func $~lib/string/String#substring (; 230 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 225 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12205,7 +11933,7 @@ local.get $10 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#join_bool (; 231 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_bool (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12390,7 +12118,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 232 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 227 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -12404,7 +12132,7 @@ local.get $2 return ) - (func $~lib/util/number/decimalCount32 (; 233 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 228 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -12473,7 +12201,7 @@ unreachable unreachable ) - (func $~lib/util/number/utoa32_lut (; 234 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 229 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12614,7 +12342,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 235 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 230 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12671,12 +12399,12 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 236 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 231 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 237 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 232 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12735,7 +12463,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 238 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 233 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12889,7 +12617,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 239 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 234 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -12903,7 +12631,7 @@ local.get $2 return ) - (func $~lib/util/number/utoa32 (; 240 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 235 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12940,12 +12668,12 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 241 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 236 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 242 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 237 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12984,7 +12712,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 243 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 238 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13138,7 +12866,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 244 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 239 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -13152,14 +12880,14 @@ local.get $2 return ) - (func $~lib/builtins/isFinite (; 245 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isFinite (; 240 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.sub f64.const 0 f64.eq ) - (func $~lib/array/Array#__unchecked_get (; 246 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 241 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -13168,7 +12896,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 247 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 242 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -13177,7 +12905,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 248 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 243 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -13733,7 +13461,7 @@ end local.get $15 ) - (func $~lib/util/number/prettify (; 249 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 244 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -14063,7 +13791,7 @@ unreachable unreachable ) - (func $~lib/util/number/dtoa_core (; 250 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 245 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14501,7 +14229,7 @@ local.get $2 i32.add ) - (func $~lib/util/number/dtoa (; 251 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 246 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14560,7 +14288,7 @@ call $~lib/rt/tlsf/__free local.get $3 ) - (func $~lib/util/number/dtoa_stream (; 252 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 247 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -14631,7 +14359,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array#join_flt (; 253 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_flt (; 248 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14785,7 +14513,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 254 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 249 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -14799,7 +14527,7 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/string/String>#join_str (; 255 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join_str (; 250 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15044,7 +14772,7 @@ call $~lib/rt/pure/__release local.get $9 ) - (func $~lib/array/Array<~lib/string/String>#join (; 256 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join (; 251 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -15058,7 +14786,7 @@ local.get $2 return ) - (func $std/array/Ref#constructor (; 257 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/Ref#constructor (; 252 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -15070,7 +14798,7 @@ end local.get $0 ) - (func $~lib/array/Array#join_ref (; 258 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_ref (; 253 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15258,7 +14986,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 259 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 254 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -15272,12 +15000,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 260 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 255 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa (; 261 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 256 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -15286,7 +15014,7 @@ call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 262 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 257 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15361,7 +15089,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 263 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 258 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15515,7 +15243,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 264 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 259 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -15529,19 +15257,19 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 265 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 260 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa (; 266 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 261 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 65535 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 267 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 262 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15586,7 +15314,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 268 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 263 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15740,7 +15468,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 269 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 264 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -15754,12 +15482,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 270 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 265 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/decimalCount64 (; 271 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 266 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -15828,7 +15556,7 @@ unreachable unreachable ) - (func $~lib/util/number/utoa64_lut (; 272 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 267 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -15954,7 +15682,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 273 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 268 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16023,12 +15751,12 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 274 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 269 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/utoa64 return ) - (func $~lib/util/number/itoa_stream (; 275 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 270 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16093,7 +15821,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 276 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 271 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16247,7 +15975,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 277 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 272 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -16261,12 +15989,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 278 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 273 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa64 (; 279 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 274 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16357,12 +16085,12 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 280 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 275 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/itoa64 return ) - (func $~lib/util/number/itoa_stream (; 281 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 276 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16449,7 +16177,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 282 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 277 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16603,7 +16331,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 283 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 278 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -16617,12 +16345,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 284 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 279 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/array/Array<~lib/string/String | null>#join_str (; 285 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join_str (; 280 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16867,7 +16595,7 @@ call $~lib/rt/pure/__release local.get $9 ) - (func $~lib/array/Array<~lib/string/String | null>#join (; 286 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join (; 281 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -16881,17 +16609,17 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/string/String | null>#toString (; 287 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#toString (; 282 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/string/String | null>#join ) - (func $~lib/array/Array<~lib/string/String>#toString (; 288 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#toString (; 283 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/string/String>#join ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 289 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 284 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17122,7 +16850,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 290 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 285 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -17136,19 +16864,19 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 291 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 286 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/util/number/itoa (; 292 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 287 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 255 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 293 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 288 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17193,7 +16921,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 294 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 289 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17347,7 +17075,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 295 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 290 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -17361,7 +17089,7 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 296 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 291 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17592,7 +17320,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 297 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 292 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -17606,12 +17334,12 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 298 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 293 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 299 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 294 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17842,7 +17570,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 300 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 295 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -17856,7 +17584,7 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 301 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 296 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18087,7 +17815,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 302 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 297 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -18101,12 +17829,12 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 303 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 298 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join ) - (func $start:std/array (; 304 ;) (type $FUNCSIG$v) + (func $start:std/array (; 299 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -18177,7 +17905,7 @@ if i32.const 0 i32.const 376 - i32.const 37 + i32.const 35 i32.const 2 call $~lib/builtins/abort unreachable @@ -18190,7 +17918,7 @@ if i32.const 0 i32.const 376 - i32.const 38 + i32.const 36 i32.const 2 call $~lib/builtins/abort unreachable @@ -18205,7 +17933,7 @@ if i32.const 0 i32.const 376 - i32.const 39 + i32.const 37 i32.const 2 call $~lib/builtins/abort unreachable @@ -18221,7 +17949,7 @@ if i32.const 0 i32.const 376 - i32.const 40 + i32.const 38 i32.const 2 call $~lib/builtins/abort unreachable @@ -18234,7 +17962,7 @@ if i32.const 0 i32.const 376 - i32.const 41 + i32.const 39 i32.const 2 call $~lib/builtins/abort unreachable @@ -18247,7 +17975,7 @@ if i32.const 0 i32.const 376 - i32.const 42 + i32.const 40 i32.const 2 call $~lib/builtins/abort unreachable @@ -18287,7 +18015,7 @@ if i32.const 0 i32.const 376 - i32.const 50 + i32.const 48 i32.const 2 call $~lib/builtins/abort unreachable @@ -18312,7 +18040,7 @@ if i32.const 0 i32.const 376 - i32.const 53 + i32.const 51 i32.const 2 call $~lib/builtins/abort unreachable @@ -18337,7 +18065,7 @@ if i32.const 0 i32.const 376 - i32.const 56 + i32.const 54 i32.const 2 call $~lib/builtins/abort unreachable @@ -18362,7 +18090,7 @@ if i32.const 0 i32.const 376 - i32.const 59 + i32.const 57 i32.const 2 call $~lib/builtins/abort unreachable @@ -18387,7 +18115,7 @@ if i32.const 0 i32.const 376 - i32.const 62 + i32.const 60 i32.const 2 call $~lib/builtins/abort unreachable @@ -18437,7 +18165,7 @@ if i32.const 0 i32.const 376 - i32.const 69 + i32.const 67 i32.const 2 call $~lib/builtins/abort unreachable @@ -18462,7 +18190,7 @@ if i32.const 0 i32.const 376 - i32.const 72 + i32.const 70 i32.const 2 call $~lib/builtins/abort unreachable @@ -18487,7 +18215,7 @@ if i32.const 0 i32.const 376 - i32.const 75 + i32.const 73 i32.const 2 call $~lib/builtins/abort unreachable @@ -18512,7 +18240,7 @@ if i32.const 0 i32.const 376 - i32.const 78 + i32.const 76 i32.const 2 call $~lib/builtins/abort unreachable @@ -18537,7 +18265,7 @@ if i32.const 0 i32.const 376 - i32.const 81 + i32.const 79 i32.const 2 call $~lib/builtins/abort unreachable @@ -18566,7 +18294,7 @@ if i32.const 0 i32.const 376 - i32.const 87 + i32.const 85 i32.const 2 call $~lib/builtins/abort unreachable @@ -18579,7 +18307,7 @@ if i32.const 0 i32.const 376 - i32.const 88 + i32.const 86 i32.const 2 call $~lib/builtins/abort unreachable @@ -18597,7 +18325,7 @@ if i32.const 0 i32.const 376 - i32.const 92 + i32.const 90 i32.const 2 call $~lib/builtins/abort unreachable @@ -18610,7 +18338,7 @@ if i32.const 0 i32.const 376 - i32.const 93 + i32.const 91 i32.const 2 call $~lib/builtins/abort unreachable @@ -18623,7 +18351,7 @@ if i32.const 0 i32.const 376 - i32.const 94 + i32.const 92 i32.const 2 call $~lib/builtins/abort unreachable @@ -18638,7 +18366,7 @@ if i32.const 0 i32.const 376 - i32.const 98 + i32.const 96 i32.const 2 call $~lib/builtins/abort unreachable @@ -18651,7 +18379,7 @@ if i32.const 0 i32.const 376 - i32.const 99 + i32.const 97 i32.const 2 call $~lib/builtins/abort unreachable @@ -18664,7 +18392,7 @@ if i32.const 0 i32.const 376 - i32.const 100 + i32.const 98 i32.const 2 call $~lib/builtins/abort unreachable @@ -18678,6 +18406,33 @@ i32.const 1 i32.eq i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 102 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 103 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz if i32.const 0 i32.const 376 @@ -18687,14 +18442,31 @@ unreachable end global.get $std/array/arr - call $std/array/internalCapacity - i32.const 1 + i32.const 44 + call $~lib/array/Array#push + drop + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 376 - i32.const 105 + i32.const 108 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 109 i32.const 2 call $~lib/builtins/abort unreachable @@ -18705,23 +18477,6 @@ i32.const 43 i32.eq i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 106 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 44 - call $~lib/array/Array#push - drop - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz if i32.const 0 i32.const 376 @@ -18731,33 +18486,6 @@ unreachable end global.get $std/array/arr - call $std/array/internalCapacity - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 111 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 112 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18766,7 +18494,7 @@ if i32.const 0 i32.const 376 - i32.const 113 + i32.const 111 i32.const 2 call $~lib/builtins/abort unreachable @@ -18783,7 +18511,7 @@ if i32.const 0 i32.const 376 - i32.const 117 + i32.const 115 i32.const 2 call $~lib/builtins/abort unreachable @@ -18796,7 +18524,7 @@ if i32.const 0 i32.const 376 - i32.const 118 + i32.const 116 i32.const 2 call $~lib/builtins/abort unreachable @@ -18810,7 +18538,7 @@ if i32.const 0 i32.const 376 - i32.const 119 + i32.const 117 i32.const 2 call $~lib/builtins/abort unreachable @@ -18824,7 +18552,7 @@ if i32.const 0 i32.const 376 - i32.const 120 + i32.const 118 i32.const 2 call $~lib/builtins/abort unreachable @@ -18838,7 +18566,7 @@ if i32.const 0 i32.const 376 - i32.const 121 + i32.const 119 i32.const 2 call $~lib/builtins/abort unreachable @@ -18861,7 +18589,7 @@ if i32.const 0 i32.const 376 - i32.const 130 + i32.const 128 i32.const 2 call $~lib/builtins/abort unreachable @@ -18874,7 +18602,7 @@ if i32.const 0 i32.const 376 - i32.const 131 + i32.const 129 i32.const 2 call $~lib/builtins/abort unreachable @@ -18887,7 +18615,7 @@ if i32.const 0 i32.const 376 - i32.const 132 + i32.const 130 i32.const 2 call $~lib/builtins/abort unreachable @@ -18910,7 +18638,7 @@ if i32.const 0 i32.const 376 - i32.const 135 + i32.const 133 i32.const 2 call $~lib/builtins/abort unreachable @@ -18924,7 +18652,7 @@ if i32.const 0 i32.const 376 - i32.const 137 + i32.const 135 i32.const 2 call $~lib/builtins/abort unreachable @@ -18938,7 +18666,7 @@ if i32.const 0 i32.const 376 - i32.const 138 + i32.const 136 i32.const 2 call $~lib/builtins/abort unreachable @@ -18952,7 +18680,7 @@ if i32.const 0 i32.const 376 - i32.const 139 + i32.const 137 i32.const 2 call $~lib/builtins/abort unreachable @@ -18983,7 +18711,7 @@ if i32.const 0 i32.const 376 - i32.const 146 + i32.const 144 i32.const 2 call $~lib/builtins/abort unreachable @@ -18996,7 +18724,7 @@ if i32.const 0 i32.const 376 - i32.const 147 + i32.const 145 i32.const 2 call $~lib/builtins/abort unreachable @@ -19009,7 +18737,7 @@ if i32.const 0 i32.const 376 - i32.const 148 + i32.const 146 i32.const 2 call $~lib/builtins/abort unreachable @@ -19023,7 +18751,7 @@ if i32.const 0 i32.const 376 - i32.const 149 + i32.const 147 i32.const 2 call $~lib/builtins/abort unreachable @@ -19037,7 +18765,7 @@ if i32.const 0 i32.const 376 - i32.const 150 + i32.const 148 i32.const 2 call $~lib/builtins/abort unreachable @@ -19051,7 +18779,7 @@ if i32.const 0 i32.const 376 - i32.const 151 + i32.const 149 i32.const 2 call $~lib/builtins/abort unreachable @@ -19065,7 +18793,7 @@ if i32.const 0 i32.const 376 - i32.const 152 + i32.const 150 i32.const 2 call $~lib/builtins/abort unreachable @@ -19079,7 +18807,7 @@ if i32.const 0 i32.const 376 - i32.const 153 + i32.const 151 i32.const 2 call $~lib/builtins/abort unreachable @@ -19095,7 +18823,7 @@ if i32.const 0 i32.const 376 - i32.const 156 + i32.const 154 i32.const 2 call $~lib/builtins/abort unreachable @@ -19118,7 +18846,7 @@ if i32.const 0 i32.const 376 - i32.const 159 + i32.const 157 i32.const 2 call $~lib/builtins/abort unreachable @@ -19132,7 +18860,7 @@ if i32.const 0 i32.const 376 - i32.const 160 + i32.const 158 i32.const 2 call $~lib/builtins/abort unreachable @@ -19154,7 +18882,7 @@ if i32.const 0 i32.const 376 - i32.const 163 + i32.const 161 i32.const 2 call $~lib/builtins/abort unreachable @@ -19177,7 +18905,7 @@ if i32.const 0 i32.const 376 - i32.const 165 + i32.const 163 i32.const 2 call $~lib/builtins/abort unreachable @@ -19190,7 +18918,7 @@ if i32.const 0 i32.const 376 - i32.const 166 + i32.const 164 i32.const 2 call $~lib/builtins/abort unreachable @@ -19250,7 +18978,7 @@ if i32.const 0 i32.const 376 - i32.const 174 + i32.const 172 i32.const 2 call $~lib/builtins/abort unreachable @@ -19296,7 +19024,7 @@ if i32.const 0 i32.const 376 - i32.const 176 + i32.const 174 i32.const 2 call $~lib/builtins/abort unreachable @@ -19342,7 +19070,7 @@ if i32.const 0 i32.const 376 - i32.const 178 + i32.const 176 i32.const 2 call $~lib/builtins/abort unreachable @@ -19388,7 +19116,7 @@ if i32.const 0 i32.const 376 - i32.const 180 + i32.const 178 i32.const 2 call $~lib/builtins/abort unreachable @@ -19434,7 +19162,7 @@ if i32.const 0 i32.const 376 - i32.const 182 + i32.const 180 i32.const 2 call $~lib/builtins/abort unreachable @@ -19480,7 +19208,7 @@ if i32.const 0 i32.const 376 - i32.const 184 + i32.const 182 i32.const 2 call $~lib/builtins/abort unreachable @@ -19526,7 +19254,7 @@ if i32.const 0 i32.const 376 - i32.const 186 + i32.const 184 i32.const 2 call $~lib/builtins/abort unreachable @@ -19572,7 +19300,7 @@ if i32.const 0 i32.const 376 - i32.const 188 + i32.const 186 i32.const 2 call $~lib/builtins/abort unreachable @@ -19618,7 +19346,7 @@ if i32.const 0 i32.const 376 - i32.const 190 + i32.const 188 i32.const 2 call $~lib/builtins/abort unreachable @@ -19664,7 +19392,7 @@ if i32.const 0 i32.const 376 - i32.const 192 + i32.const 190 i32.const 2 call $~lib/builtins/abort unreachable @@ -19710,7 +19438,7 @@ if i32.const 0 i32.const 376 - i32.const 194 + i32.const 192 i32.const 2 call $~lib/builtins/abort unreachable @@ -19756,7 +19484,7 @@ if i32.const 0 i32.const 376 - i32.const 196 + i32.const 194 i32.const 2 call $~lib/builtins/abort unreachable @@ -19849,7 +19577,7 @@ if i32.const 0 i32.const 376 - i32.const 204 + i32.const 202 i32.const 2 call $~lib/builtins/abort unreachable @@ -19862,7 +19590,7 @@ if i32.const 0 i32.const 376 - i32.const 205 + i32.const 203 i32.const 2 call $~lib/builtins/abort unreachable @@ -19876,7 +19604,7 @@ if i32.const 0 i32.const 376 - i32.const 206 + i32.const 204 i32.const 2 call $~lib/builtins/abort unreachable @@ -19890,7 +19618,7 @@ if i32.const 0 i32.const 376 - i32.const 207 + i32.const 205 i32.const 2 call $~lib/builtins/abort unreachable @@ -19904,7 +19632,7 @@ if i32.const 0 i32.const 376 - i32.const 208 + i32.const 206 i32.const 2 call $~lib/builtins/abort unreachable @@ -19918,7 +19646,7 @@ if i32.const 0 i32.const 376 - i32.const 209 + i32.const 207 i32.const 2 call $~lib/builtins/abort unreachable @@ -19935,7 +19663,7 @@ if i32.const 0 i32.const 376 - i32.const 213 + i32.const 211 i32.const 2 call $~lib/builtins/abort unreachable @@ -19948,7 +19676,7 @@ if i32.const 0 i32.const 376 - i32.const 214 + i32.const 212 i32.const 2 call $~lib/builtins/abort unreachable @@ -19962,7 +19690,7 @@ if i32.const 0 i32.const 376 - i32.const 215 + i32.const 213 i32.const 2 call $~lib/builtins/abort unreachable @@ -19976,7 +19704,7 @@ if i32.const 0 i32.const 376 - i32.const 216 + i32.const 214 i32.const 2 call $~lib/builtins/abort unreachable @@ -19990,7 +19718,7 @@ if i32.const 0 i32.const 376 - i32.const 217 + i32.const 215 i32.const 2 call $~lib/builtins/abort unreachable @@ -20004,7 +19732,7 @@ if i32.const 0 i32.const 376 - i32.const 218 + i32.const 216 i32.const 2 call $~lib/builtins/abort unreachable @@ -20018,7 +19746,7 @@ if i32.const 0 i32.const 376 - i32.const 219 + i32.const 217 i32.const 2 call $~lib/builtins/abort unreachable @@ -20035,7 +19763,7 @@ if i32.const 0 i32.const 376 - i32.const 228 + i32.const 226 i32.const 2 call $~lib/builtins/abort unreachable @@ -20048,7 +19776,7 @@ if i32.const 0 i32.const 376 - i32.const 229 + i32.const 227 i32.const 2 call $~lib/builtins/abort unreachable @@ -20061,7 +19789,7 @@ if i32.const 0 i32.const 376 - i32.const 230 + i32.const 228 i32.const 2 call $~lib/builtins/abort unreachable @@ -20075,7 +19803,7 @@ if i32.const 0 i32.const 376 - i32.const 231 + i32.const 229 i32.const 2 call $~lib/builtins/abort unreachable @@ -20089,7 +19817,7 @@ if i32.const 0 i32.const 376 - i32.const 232 + i32.const 230 i32.const 2 call $~lib/builtins/abort unreachable @@ -20103,7 +19831,7 @@ if i32.const 0 i32.const 376 - i32.const 233 + i32.const 231 i32.const 2 call $~lib/builtins/abort unreachable @@ -20117,7 +19845,7 @@ if i32.const 0 i32.const 376 - i32.const 234 + i32.const 232 i32.const 2 call $~lib/builtins/abort unreachable @@ -20132,7 +19860,7 @@ if i32.const 0 i32.const 376 - i32.const 238 + i32.const 236 i32.const 2 call $~lib/builtins/abort unreachable @@ -20145,7 +19873,7 @@ if i32.const 0 i32.const 376 - i32.const 239 + i32.const 237 i32.const 2 call $~lib/builtins/abort unreachable @@ -20158,7 +19886,7 @@ if i32.const 0 i32.const 376 - i32.const 240 + i32.const 238 i32.const 2 call $~lib/builtins/abort unreachable @@ -20172,7 +19900,7 @@ if i32.const 0 i32.const 376 - i32.const 241 + i32.const 239 i32.const 2 call $~lib/builtins/abort unreachable @@ -20186,7 +19914,7 @@ if i32.const 0 i32.const 376 - i32.const 242 + i32.const 240 i32.const 2 call $~lib/builtins/abort unreachable @@ -20200,7 +19928,7 @@ if i32.const 0 i32.const 376 - i32.const 243 + i32.const 241 i32.const 2 call $~lib/builtins/abort unreachable @@ -20218,7 +19946,7 @@ if i32.const 0 i32.const 376 - i32.const 251 + i32.const 249 i32.const 2 call $~lib/builtins/abort unreachable @@ -20231,7 +19959,7 @@ if i32.const 0 i32.const 376 - i32.const 252 + i32.const 250 i32.const 2 call $~lib/builtins/abort unreachable @@ -20242,6 +19970,34 @@ i32.const 44 i32.eq i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 251 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 252 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz if i32.const 0 i32.const 376 @@ -20251,34 +20007,6 @@ unreachable end global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 254 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 255 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr i32.const 43 call $~lib/array/Array#push drop @@ -20300,7 +20028,7 @@ if i32.const 0 i32.const 376 - i32.const 265 + i32.const 263 i32.const 2 call $~lib/builtins/abort unreachable @@ -20317,7 +20045,7 @@ if i32.const 0 i32.const 376 - i32.const 268 + i32.const 266 i32.const 2 call $~lib/builtins/abort unreachable @@ -20334,7 +20062,7 @@ if i32.const 0 i32.const 376 - i32.const 271 + i32.const 269 i32.const 2 call $~lib/builtins/abort unreachable @@ -20351,7 +20079,7 @@ if i32.const 0 i32.const 376 - i32.const 274 + i32.const 272 i32.const 2 call $~lib/builtins/abort unreachable @@ -20368,7 +20096,7 @@ if i32.const 0 i32.const 376 - i32.const 277 + i32.const 275 i32.const 2 call $~lib/builtins/abort unreachable @@ -20385,7 +20113,7 @@ if i32.const 0 i32.const 376 - i32.const 280 + i32.const 278 i32.const 2 call $~lib/builtins/abort unreachable @@ -20402,7 +20130,7 @@ if i32.const 0 i32.const 376 - i32.const 283 + i32.const 281 i32.const 2 call $~lib/builtins/abort unreachable @@ -20419,7 +20147,7 @@ if i32.const 0 i32.const 376 - i32.const 286 + i32.const 284 i32.const 2 call $~lib/builtins/abort unreachable @@ -20436,7 +20164,7 @@ if i32.const 0 i32.const 376 - i32.const 289 + i32.const 287 i32.const 2 call $~lib/builtins/abort unreachable @@ -20453,7 +20181,7 @@ if i32.const 0 i32.const 376 - i32.const 292 + i32.const 290 i32.const 2 call $~lib/builtins/abort unreachable @@ -20472,7 +20200,7 @@ if i32.const 0 i32.const 376 - i32.const 299 + i32.const 297 i32.const 2 call $~lib/builtins/abort unreachable @@ -20489,7 +20217,7 @@ if i32.const 0 i32.const 376 - i32.const 302 + i32.const 300 i32.const 2 call $~lib/builtins/abort unreachable @@ -20506,7 +20234,7 @@ if i32.const 0 i32.const 376 - i32.const 305 + i32.const 303 i32.const 2 call $~lib/builtins/abort unreachable @@ -20523,7 +20251,7 @@ if i32.const 0 i32.const 376 - i32.const 308 + i32.const 306 i32.const 2 call $~lib/builtins/abort unreachable @@ -20540,7 +20268,7 @@ if i32.const 0 i32.const 376 - i32.const 311 + i32.const 309 i32.const 2 call $~lib/builtins/abort unreachable @@ -20557,7 +20285,7 @@ if i32.const 0 i32.const 376 - i32.const 314 + i32.const 312 i32.const 2 call $~lib/builtins/abort unreachable @@ -20574,7 +20302,7 @@ if i32.const 0 i32.const 376 - i32.const 317 + i32.const 315 i32.const 2 call $~lib/builtins/abort unreachable @@ -20591,7 +20319,7 @@ if i32.const 0 i32.const 376 - i32.const 320 + i32.const 318 i32.const 2 call $~lib/builtins/abort unreachable @@ -20608,7 +20336,7 @@ if i32.const 0 i32.const 376 - i32.const 323 + i32.const 321 i32.const 2 call $~lib/builtins/abort unreachable @@ -20625,7 +20353,7 @@ if i32.const 0 i32.const 376 - i32.const 326 + i32.const 324 i32.const 2 call $~lib/builtins/abort unreachable @@ -20643,7 +20371,7 @@ if i32.const 0 i32.const 376 - i32.const 330 + i32.const 328 i32.const 2 call $~lib/builtins/abort unreachable @@ -20656,7 +20384,7 @@ if i32.const 0 i32.const 376 - i32.const 331 + i32.const 329 i32.const 2 call $~lib/builtins/abort unreachable @@ -20670,7 +20398,7 @@ if i32.const 0 i32.const 376 - i32.const 332 + i32.const 330 i32.const 2 call $~lib/builtins/abort unreachable @@ -20684,7 +20412,7 @@ if i32.const 0 i32.const 376 - i32.const 333 + i32.const 331 i32.const 2 call $~lib/builtins/abort unreachable @@ -20718,7 +20446,7 @@ if i32.const 0 i32.const 376 - i32.const 340 + i32.const 338 i32.const 2 call $~lib/builtins/abort unreachable @@ -20737,7 +20465,7 @@ if i32.const 0 i32.const 376 - i32.const 341 + i32.const 339 i32.const 2 call $~lib/builtins/abort unreachable @@ -20782,7 +20510,7 @@ if i32.const 0 i32.const 376 - i32.const 344 + i32.const 342 i32.const 2 call $~lib/builtins/abort unreachable @@ -20801,7 +20529,7 @@ if i32.const 0 i32.const 376 - i32.const 345 + i32.const 343 i32.const 2 call $~lib/builtins/abort unreachable @@ -20846,7 +20574,7 @@ if i32.const 0 i32.const 376 - i32.const 348 + i32.const 346 i32.const 2 call $~lib/builtins/abort unreachable @@ -20865,7 +20593,7 @@ if i32.const 0 i32.const 376 - i32.const 349 + i32.const 347 i32.const 2 call $~lib/builtins/abort unreachable @@ -20910,7 +20638,7 @@ if i32.const 0 i32.const 376 - i32.const 352 + i32.const 350 i32.const 2 call $~lib/builtins/abort unreachable @@ -20929,7 +20657,7 @@ if i32.const 0 i32.const 376 - i32.const 353 + i32.const 351 i32.const 2 call $~lib/builtins/abort unreachable @@ -20974,7 +20702,7 @@ if i32.const 0 i32.const 376 - i32.const 356 + i32.const 354 i32.const 2 call $~lib/builtins/abort unreachable @@ -20993,7 +20721,7 @@ if i32.const 0 i32.const 376 - i32.const 357 + i32.const 355 i32.const 2 call $~lib/builtins/abort unreachable @@ -21038,7 +20766,7 @@ if i32.const 0 i32.const 376 - i32.const 360 + i32.const 358 i32.const 2 call $~lib/builtins/abort unreachable @@ -21057,7 +20785,7 @@ if i32.const 0 i32.const 376 - i32.const 361 + i32.const 359 i32.const 2 call $~lib/builtins/abort unreachable @@ -21102,7 +20830,7 @@ if i32.const 0 i32.const 376 - i32.const 364 + i32.const 362 i32.const 2 call $~lib/builtins/abort unreachable @@ -21121,7 +20849,7 @@ if i32.const 0 i32.const 376 - i32.const 365 + i32.const 363 i32.const 2 call $~lib/builtins/abort unreachable @@ -21166,7 +20894,7 @@ if i32.const 0 i32.const 376 - i32.const 368 + i32.const 366 i32.const 2 call $~lib/builtins/abort unreachable @@ -21185,7 +20913,7 @@ if i32.const 0 i32.const 376 - i32.const 369 + i32.const 367 i32.const 2 call $~lib/builtins/abort unreachable @@ -21230,7 +20958,7 @@ if i32.const 0 i32.const 376 - i32.const 372 + i32.const 370 i32.const 2 call $~lib/builtins/abort unreachable @@ -21249,7 +20977,7 @@ if i32.const 0 i32.const 376 - i32.const 373 + i32.const 371 i32.const 2 call $~lib/builtins/abort unreachable @@ -21294,7 +21022,7 @@ if i32.const 0 i32.const 376 - i32.const 376 + i32.const 374 i32.const 2 call $~lib/builtins/abort unreachable @@ -21313,7 +21041,7 @@ if i32.const 0 i32.const 376 - i32.const 377 + i32.const 375 i32.const 2 call $~lib/builtins/abort unreachable @@ -21358,7 +21086,7 @@ if i32.const 0 i32.const 376 - i32.const 380 + i32.const 378 i32.const 2 call $~lib/builtins/abort unreachable @@ -21377,7 +21105,7 @@ if i32.const 0 i32.const 376 - i32.const 381 + i32.const 379 i32.const 2 call $~lib/builtins/abort unreachable @@ -21422,7 +21150,7 @@ if i32.const 0 i32.const 376 - i32.const 384 + i32.const 382 i32.const 2 call $~lib/builtins/abort unreachable @@ -21441,7 +21169,7 @@ if i32.const 0 i32.const 376 - i32.const 385 + i32.const 383 i32.const 2 call $~lib/builtins/abort unreachable @@ -21486,7 +21214,7 @@ if i32.const 0 i32.const 376 - i32.const 388 + i32.const 386 i32.const 2 call $~lib/builtins/abort unreachable @@ -21505,7 +21233,7 @@ if i32.const 0 i32.const 376 - i32.const 389 + i32.const 387 i32.const 2 call $~lib/builtins/abort unreachable @@ -21645,7 +21373,7 @@ if i32.const 0 i32.const 376 - i32.const 402 + i32.const 400 i32.const 2 call $~lib/builtins/abort unreachable @@ -21661,7 +21389,7 @@ if i32.const 0 i32.const 376 - i32.const 405 + i32.const 403 i32.const 2 call $~lib/builtins/abort unreachable @@ -21677,7 +21405,7 @@ if i32.const 0 i32.const 376 - i32.const 408 + i32.const 406 i32.const 2 call $~lib/builtins/abort unreachable @@ -21693,7 +21421,7 @@ if i32.const 0 i32.const 376 - i32.const 416 + i32.const 414 i32.const 2 call $~lib/builtins/abort unreachable @@ -21706,7 +21434,7 @@ if i32.const 0 i32.const 376 - i32.const 417 + i32.const 415 i32.const 2 call $~lib/builtins/abort unreachable @@ -21722,7 +21450,7 @@ if i32.const 0 i32.const 376 - i32.const 419 + i32.const 417 i32.const 2 call $~lib/builtins/abort unreachable @@ -21750,7 +21478,7 @@ if i32.const 0 i32.const 376 - i32.const 432 + i32.const 430 i32.const 2 call $~lib/builtins/abort unreachable @@ -21763,7 +21491,7 @@ if i32.const 0 i32.const 376 - i32.const 433 + i32.const 431 i32.const 2 call $~lib/builtins/abort unreachable @@ -21789,7 +21517,7 @@ if i32.const 0 i32.const 376 - i32.const 443 + i32.const 441 i32.const 2 call $~lib/builtins/abort unreachable @@ -21805,7 +21533,7 @@ if i32.const 0 i32.const 376 - i32.const 446 + i32.const 444 i32.const 2 call $~lib/builtins/abort unreachable @@ -21821,7 +21549,7 @@ if i32.const 0 i32.const 376 - i32.const 454 + i32.const 452 i32.const 2 call $~lib/builtins/abort unreachable @@ -21834,7 +21562,7 @@ if i32.const 0 i32.const 376 - i32.const 455 + i32.const 453 i32.const 2 call $~lib/builtins/abort unreachable @@ -21850,7 +21578,7 @@ if i32.const 0 i32.const 376 - i32.const 457 + i32.const 455 i32.const 2 call $~lib/builtins/abort unreachable @@ -21878,7 +21606,7 @@ if i32.const 0 i32.const 376 - i32.const 470 + i32.const 468 i32.const 2 call $~lib/builtins/abort unreachable @@ -21891,7 +21619,7 @@ if i32.const 0 i32.const 376 - i32.const 471 + i32.const 469 i32.const 2 call $~lib/builtins/abort unreachable @@ -21917,7 +21645,7 @@ if i32.const 0 i32.const 376 - i32.const 481 + i32.const 479 i32.const 2 call $~lib/builtins/abort unreachable @@ -21933,7 +21661,7 @@ if i32.const 0 i32.const 376 - i32.const 484 + i32.const 482 i32.const 2 call $~lib/builtins/abort unreachable @@ -21949,7 +21677,7 @@ if i32.const 0 i32.const 376 - i32.const 492 + i32.const 490 i32.const 2 call $~lib/builtins/abort unreachable @@ -21962,7 +21690,7 @@ if i32.const 0 i32.const 376 - i32.const 493 + i32.const 491 i32.const 2 call $~lib/builtins/abort unreachable @@ -21978,7 +21706,7 @@ if i32.const 0 i32.const 376 - i32.const 495 + i32.const 493 i32.const 2 call $~lib/builtins/abort unreachable @@ -22006,7 +21734,7 @@ if i32.const 0 i32.const 376 - i32.const 508 + i32.const 506 i32.const 2 call $~lib/builtins/abort unreachable @@ -22019,7 +21747,7 @@ if i32.const 0 i32.const 376 - i32.const 509 + i32.const 507 i32.const 2 call $~lib/builtins/abort unreachable @@ -22046,7 +21774,7 @@ if i32.const 0 i32.const 376 - i32.const 520 + i32.const 518 i32.const 2 call $~lib/builtins/abort unreachable @@ -22063,7 +21791,7 @@ if i32.const 0 i32.const 376 - i32.const 529 + i32.const 527 i32.const 2 call $~lib/builtins/abort unreachable @@ -22076,7 +21804,7 @@ if i32.const 0 i32.const 376 - i32.const 530 + i32.const 528 i32.const 2 call $~lib/builtins/abort unreachable @@ -22093,7 +21821,7 @@ if i32.const 0 i32.const 376 - i32.const 533 + i32.const 531 i32.const 2 call $~lib/builtins/abort unreachable @@ -22122,7 +21850,7 @@ if i32.const 0 i32.const 376 - i32.const 547 + i32.const 545 i32.const 2 call $~lib/builtins/abort unreachable @@ -22135,7 +21863,7 @@ if i32.const 0 i32.const 376 - i32.const 548 + i32.const 546 i32.const 2 call $~lib/builtins/abort unreachable @@ -22159,7 +21887,7 @@ if i32.const 0 i32.const 376 - i32.const 573 + i32.const 571 i32.const 2 call $~lib/builtins/abort unreachable @@ -22215,7 +21943,7 @@ if i32.const 0 i32.const 376 - i32.const 587 + i32.const 585 i32.const 2 call $~lib/builtins/abort unreachable @@ -22232,7 +21960,7 @@ if i32.const 0 i32.const 376 - i32.const 588 + i32.const 586 i32.const 2 call $~lib/builtins/abort unreachable @@ -22250,7 +21978,7 @@ if i32.const 0 i32.const 376 - i32.const 597 + i32.const 595 i32.const 2 call $~lib/builtins/abort unreachable @@ -22263,7 +21991,7 @@ if i32.const 0 i32.const 376 - i32.const 598 + i32.const 596 i32.const 2 call $~lib/builtins/abort unreachable @@ -22281,7 +22009,7 @@ if i32.const 0 i32.const 376 - i32.const 605 + i32.const 603 i32.const 2 call $~lib/builtins/abort unreachable @@ -22311,7 +22039,7 @@ if i32.const 0 i32.const 376 - i32.const 620 + i32.const 618 i32.const 2 call $~lib/builtins/abort unreachable @@ -22324,7 +22052,7 @@ if i32.const 0 i32.const 376 - i32.const 621 + i32.const 619 i32.const 2 call $~lib/builtins/abort unreachable @@ -22353,7 +22081,7 @@ if i32.const 0 i32.const 376 - i32.const 631 + i32.const 629 i32.const 2 call $~lib/builtins/abort unreachable @@ -22371,7 +22099,7 @@ if i32.const 0 i32.const 376 - i32.const 640 + i32.const 638 i32.const 2 call $~lib/builtins/abort unreachable @@ -22384,7 +22112,7 @@ if i32.const 0 i32.const 376 - i32.const 641 + i32.const 639 i32.const 2 call $~lib/builtins/abort unreachable @@ -22402,7 +22130,7 @@ if i32.const 0 i32.const 376 - i32.const 648 + i32.const 646 i32.const 2 call $~lib/builtins/abort unreachable @@ -22432,7 +22160,7 @@ if i32.const 0 i32.const 376 - i32.const 663 + i32.const 661 i32.const 2 call $~lib/builtins/abort unreachable @@ -22445,7 +22173,7 @@ if i32.const 0 i32.const 376 - i32.const 664 + i32.const 662 i32.const 2 call $~lib/builtins/abort unreachable @@ -22474,7 +22202,7 @@ if i32.const 0 i32.const 376 - i32.const 674 + i32.const 672 i32.const 2 call $~lib/builtins/abort unreachable @@ -22491,7 +22219,7 @@ if i32.const 0 i32.const 376 - i32.const 678 + i32.const 676 i32.const 2 call $~lib/builtins/abort unreachable @@ -22510,7 +22238,7 @@ if i32.const 0 i32.const 376 - i32.const 681 + i32.const 679 i32.const 2 call $~lib/builtins/abort unreachable @@ -22529,7 +22257,7 @@ if i32.const 0 i32.const 376 - i32.const 684 + i32.const 682 i32.const 2 call $~lib/builtins/abort unreachable @@ -22546,7 +22274,7 @@ if i32.const 0 i32.const 376 - i32.const 692 + i32.const 690 i32.const 2 call $~lib/builtins/abort unreachable @@ -22559,7 +22287,7 @@ if i32.const 0 i32.const 376 - i32.const 693 + i32.const 691 i32.const 2 call $~lib/builtins/abort unreachable @@ -22576,7 +22304,7 @@ if i32.const 0 i32.const 376 - i32.const 695 + i32.const 693 i32.const 2 call $~lib/builtins/abort unreachable @@ -22605,7 +22333,7 @@ if i32.const 0 i32.const 376 - i32.const 708 + i32.const 706 i32.const 2 call $~lib/builtins/abort unreachable @@ -22618,7 +22346,7 @@ if i32.const 0 i32.const 376 - i32.const 709 + i32.const 707 i32.const 2 call $~lib/builtins/abort unreachable @@ -22645,7 +22373,7 @@ if i32.const 0 i32.const 376 - i32.const 719 + i32.const 717 i32.const 2 call $~lib/builtins/abort unreachable @@ -22662,7 +22390,7 @@ if i32.const 0 i32.const 376 - i32.const 723 + i32.const 721 i32.const 2 call $~lib/builtins/abort unreachable @@ -22681,7 +22409,7 @@ if i32.const 0 i32.const 376 - i32.const 726 + i32.const 724 i32.const 2 call $~lib/builtins/abort unreachable @@ -22700,7 +22428,7 @@ if i32.const 0 i32.const 376 - i32.const 729 + i32.const 727 i32.const 2 call $~lib/builtins/abort unreachable @@ -22717,7 +22445,7 @@ if i32.const 0 i32.const 376 - i32.const 737 + i32.const 735 i32.const 2 call $~lib/builtins/abort unreachable @@ -22730,7 +22458,7 @@ if i32.const 0 i32.const 376 - i32.const 738 + i32.const 736 i32.const 2 call $~lib/builtins/abort unreachable @@ -22747,7 +22475,7 @@ if i32.const 0 i32.const 376 - i32.const 740 + i32.const 738 i32.const 2 call $~lib/builtins/abort unreachable @@ -22776,7 +22504,7 @@ if i32.const 0 i32.const 376 - i32.const 753 + i32.const 751 i32.const 2 call $~lib/builtins/abort unreachable @@ -22789,7 +22517,7 @@ if i32.const 0 i32.const 376 - i32.const 754 + i32.const 752 i32.const 2 call $~lib/builtins/abort unreachable @@ -22844,7 +22572,7 @@ if i32.const 0 i32.const 376 - i32.const 843 + i32.const 841 i32.const 2 call $~lib/builtins/abort unreachable @@ -22878,7 +22606,7 @@ if i32.const 0 i32.const 376 - i32.const 847 + i32.const 845 i32.const 2 call $~lib/builtins/abort unreachable @@ -22912,7 +22640,7 @@ if i32.const 0 i32.const 376 - i32.const 851 + i32.const 849 i32.const 2 call $~lib/builtins/abort unreachable @@ -22946,7 +22674,7 @@ if i32.const 0 i32.const 376 - i32.const 855 + i32.const 853 i32.const 2 call $~lib/builtins/abort unreachable @@ -23029,7 +22757,7 @@ if i32.const 0 i32.const 376 - i32.const 875 + i32.const 873 i32.const 2 call $~lib/builtins/abort unreachable @@ -23050,7 +22778,7 @@ if i32.const 0 i32.const 376 - i32.const 878 + i32.const 876 i32.const 2 call $~lib/builtins/abort unreachable @@ -23065,7 +22793,7 @@ if i32.const 0 i32.const 376 - i32.const 881 + i32.const 879 i32.const 2 call $~lib/builtins/abort unreachable @@ -23080,7 +22808,7 @@ if i32.const 0 i32.const 376 - i32.const 884 + i32.const 882 i32.const 2 call $~lib/builtins/abort unreachable @@ -23095,7 +22823,7 @@ if i32.const 0 i32.const 376 - i32.const 887 + i32.const 885 i32.const 2 call $~lib/builtins/abort unreachable @@ -23110,7 +22838,7 @@ if i32.const 0 i32.const 376 - i32.const 890 + i32.const 888 i32.const 2 call $~lib/builtins/abort unreachable @@ -23125,7 +22853,7 @@ if i32.const 0 i32.const 376 - i32.const 893 + i32.const 891 i32.const 2 call $~lib/builtins/abort unreachable @@ -23267,7 +22995,7 @@ if i32.const 0 i32.const 376 - i32.const 930 + i32.const 928 i32.const 2 call $~lib/builtins/abort unreachable @@ -23308,7 +23036,7 @@ if i32.const 0 i32.const 376 - i32.const 941 + i32.const 939 i32.const 2 call $~lib/builtins/abort unreachable @@ -23329,7 +23057,7 @@ if i32.const 0 i32.const 376 - i32.const 942 + i32.const 940 i32.const 2 call $~lib/builtins/abort unreachable @@ -23350,7 +23078,7 @@ if i32.const 0 i32.const 376 - i32.const 943 + i32.const 941 i32.const 2 call $~lib/builtins/abort unreachable @@ -23371,7 +23099,7 @@ if i32.const 0 i32.const 376 - i32.const 944 + i32.const 942 i32.const 2 call $~lib/builtins/abort unreachable @@ -23392,7 +23120,7 @@ if i32.const 0 i32.const 376 - i32.const 945 + i32.const 943 i32.const 2 call $~lib/builtins/abort unreachable @@ -23413,7 +23141,7 @@ if i32.const 0 i32.const 376 - i32.const 946 + i32.const 944 i32.const 2 call $~lib/builtins/abort unreachable @@ -23458,7 +23186,7 @@ if i32.const 0 i32.const 376 - i32.const 948 + i32.const 946 i32.const 2 call $~lib/builtins/abort unreachable @@ -23542,7 +23270,7 @@ if i32.const 0 i32.const 376 - i32.const 958 + i32.const 956 i32.const 2 call $~lib/builtins/abort unreachable @@ -23556,7 +23284,7 @@ if i32.const 0 i32.const 376 - i32.const 959 + i32.const 957 i32.const 2 call $~lib/builtins/abort unreachable @@ -23570,7 +23298,7 @@ if i32.const 0 i32.const 376 - i32.const 960 + i32.const 958 i32.const 2 call $~lib/builtins/abort unreachable @@ -23584,7 +23312,7 @@ if i32.const 0 i32.const 376 - i32.const 961 + i32.const 959 i32.const 2 call $~lib/builtins/abort unreachable @@ -23604,7 +23332,7 @@ if i32.const 0 i32.const 376 - i32.const 963 + i32.const 961 i32.const 2 call $~lib/builtins/abort unreachable @@ -23624,7 +23352,7 @@ if i32.const 0 i32.const 376 - i32.const 964 + i32.const 962 i32.const 2 call $~lib/builtins/abort unreachable @@ -23644,7 +23372,7 @@ if i32.const 0 i32.const 376 - i32.const 965 + i32.const 963 i32.const 2 call $~lib/builtins/abort unreachable @@ -23664,7 +23392,7 @@ if i32.const 0 i32.const 376 - i32.const 966 + i32.const 964 i32.const 2 call $~lib/builtins/abort unreachable @@ -23687,7 +23415,7 @@ if i32.const 0 i32.const 376 - i32.const 970 + i32.const 968 i32.const 2 call $~lib/builtins/abort unreachable @@ -23707,7 +23435,7 @@ if i32.const 0 i32.const 376 - i32.const 971 + i32.const 969 i32.const 2 call $~lib/builtins/abort unreachable @@ -23755,7 +23483,7 @@ if i32.const 0 i32.const 376 - i32.const 974 + i32.const 972 i32.const 2 call $~lib/builtins/abort unreachable @@ -23803,7 +23531,7 @@ if i32.const 0 i32.const 376 - i32.const 977 + i32.const 975 i32.const 2 call $~lib/builtins/abort unreachable @@ -23856,7 +23584,7 @@ if i32.const 0 i32.const 376 - i32.const 980 + i32.const 978 i32.const 2 call $~lib/builtins/abort unreachable @@ -23937,34 +23665,151 @@ local.get $56 call $~lib/rt/pure/__release ) - (func $std/array/main (; 305 ;) (type $FUNCSIG$v) + (func $start (; 300 ;) (type $FUNCSIG$v) global.get $~lib/started - i32.eqz if - call $start + return + else i32.const 1 global.set $~lib/started end - ) - (func $start (; 306 ;) (type $FUNCSIG$v) call $start:std/array ) - (func $~lib/array/Array#__visit_impl (; 307 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 301 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 308 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 302 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 309 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 303 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 310 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 304 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 311 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 305 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/__visit (; 312 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/markGray (; 306 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 1879048192 + i32.and + i32.const 268435456 + i32.ne + if + local.get $0 + local.get $1 + i32.const 1879048192 + i32.const -1 + i32.xor + i32.and + i32.const 268435456 + i32.or + i32.store offset=4 + local.get $0 + i32.const 16 + i32.add + i32.const 2 + call $~lib/rt/__visit_members + end + ) + (func $~lib/rt/pure/scanBlack (; 307 ;) (type $FUNCSIG$vi) (param $0 i32) + local.get $0 + local.get $0 + i32.load offset=4 + i32.const 1879048192 + i32.const -1 + i32.xor + i32.and + i32.const 0 + i32.or + i32.store offset=4 + local.get $0 + i32.const 16 + i32.add + i32.const 4 + call $~lib/rt/__visit_members + ) + (func $~lib/rt/pure/scan (; 308 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 1879048192 + i32.and + i32.const 268435456 + i32.eq + if + local.get $1 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + if + local.get $0 + call $~lib/rt/pure/scanBlack + else + local.get $0 + local.get $1 + i32.const 1879048192 + i32.const -1 + i32.xor + i32.and + i32.const 536870912 + i32.or + i32.store offset=4 + local.get $0 + i32.const 16 + i32.add + i32.const 3 + call $~lib/rt/__visit_members + end + end + ) + (func $~lib/rt/pure/collectWhite (; 309 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 1879048192 + i32.and + i32.const 536870912 + i32.eq + if (result i32) + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + else + i32.const 0 + end + if + local.get $0 + local.get $1 + i32.const 1879048192 + i32.const -1 + i32.xor + i32.and + i32.const 0 + i32.or + i32.store offset=4 + local.get $0 + i32.const 16 + i32.add + i32.const 5 + call $~lib/rt/__visit_members + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + end + ) + (func $~lib/rt/pure/__visit (; 310 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -24026,7 +23871,7 @@ i32.eqz if i32.const 0 - i32.const 128 + i32.const 232 i32.const 75 i32.const 17 call $~lib/builtins/abort @@ -24073,7 +23918,7 @@ i32.eqz if i32.const 0 - i32.const 128 + i32.const 232 i32.const 86 i32.const 6 call $~lib/builtins/abort @@ -24110,7 +23955,7 @@ i32.eqz if i32.const 0 - i32.const 128 + i32.const 232 i32.const 97 i32.const 24 call $~lib/builtins/abort @@ -24118,7 +23963,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 313 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 311 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24156,7 +24001,7 @@ end end ) - (func $~lib/array/Array>#__visit_impl (; 314 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array>#__visit_impl (; 312 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24194,7 +24039,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (; 315 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (; 313 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24232,7 +24077,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 316 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 314 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24270,16 +24115,16 @@ end end ) - (func $~lib/array/Array#__visit_impl (; 317 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 315 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 318 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 316 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 319 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 317 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 320 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 318 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24317,16 +24162,16 @@ end end ) - (func $~lib/array/Array#__visit_impl (; 321 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 319 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 322 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 320 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 323 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 321 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 324 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 322 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24364,7 +24209,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 325 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 323 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24402,7 +24247,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 326 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 324 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24440,7 +24285,7 @@ end end ) - (func $~lib/rt/__visit_members (; 327 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 325 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block @@ -24842,6 +24687,6 @@ end unreachable ) - (func $null (; 328 ;) (type $FUNCSIG$v) + (func $null (; 326 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/string.json b/tests/compiler/std/string.json index 9f7878d4..59c251c7 100644 --- a/tests/compiler/std/string.json +++ b/tests/compiler/std/string.json @@ -1,6 +1,7 @@ { "asc_flags": [ "--runtime half", + "--explicitStart", "--use ASC_RTRACE=1" ] } \ No newline at end of file diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 4b0ca1c2..f2eb7749 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -193,9 +193,9 @@ (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) (global $~lib/started (mut i32) (i32.const 0)) + (export "__start" (func $start)) (export "memory" (memory $0)) (export "getString" (func $std/string/getString)) - (export "main" (func $std/string/main)) (func $~lib/string/String#get:length (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 @@ -8925,14 +8925,15 @@ global.get $std/string/str call $~lib/rt/pure/__retain ) - (func $std/string/main (; 75 ;) (type $FUNCSIG$v) + (func $start (; 75 ;) (type $FUNCSIG$v) global.get $~lib/started - i32.eqz if - call $start:std/string + return + else i32.const 1 global.set $~lib/started end + call $start:std/string ) (func $~lib/rt/pure/markGray (; 76 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/std/string.ts b/tests/compiler/std/string.ts index f6dd3602..74a0f04e 100644 --- a/tests/compiler/std/string.ts +++ b/tests/compiler/std/string.ts @@ -310,5 +310,3 @@ export function getString(): string { // Unleak globals __release(changetype(str)); - -@start export function main(): void {} diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index d9868054..c07bcf3e 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -211,9 +211,9 @@ (global $~lib/started (mut i32) (i32.const 0)) (global $~lib/rt/__rtti_base i32 (i32.const 7032)) (global $~lib/heap/__heap_base i32 (i32.const 7100)) + (export "__start" (func $start)) (export "memory" (memory $0)) (export "getString" (func $std/string/getString)) - (export "main" (func $std/string/main)) (func $~lib/string/String#get:length (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 @@ -12141,19 +12141,17 @@ global.get $std/string/str call $~lib/rt/pure/__retain ) - (func $std/string/main (; 84 ;) (type $FUNCSIG$v) + (func $start (; 84 ;) (type $FUNCSIG$v) global.get $~lib/started - i32.eqz if - call $start + return + else i32.const 1 global.set $~lib/started end - ) - (func $start (; 85 ;) (type $FUNCSIG$v) call $start:std/string ) - (func $~lib/rt/pure/markGray (; 86 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 85 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -12180,7 +12178,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 87 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 86 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -12197,7 +12195,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 88 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 87 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -12234,7 +12232,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 89 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 88 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -12272,7 +12270,7 @@ call $~lib/rt/tlsf/freeBlock end ) - (func $~lib/rt/pure/__visit (; 90 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 89 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -12426,7 +12424,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 91 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 90 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12464,19 +12462,19 @@ end end ) - (func $~lib/array/Array#__visit_impl (; 92 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 91 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 93 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 92 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 94 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 93 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 94 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/__visit_members (; 96 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block @@ -12626,6 +12624,6 @@ end unreachable ) - (func $null (; 97 ;) (type $FUNCSIG$v) + (func $null (; 96 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/trace.json b/tests/compiler/std/trace.json index b1da366f..bf222c4d 100644 --- a/tests/compiler/std/trace.json +++ b/tests/compiler/std/trace.json @@ -1,5 +1,6 @@ { "asc_flags": [ - "--runtime none" + "--runtime none", + "--explicitStart" ] } \ No newline at end of file diff --git a/tests/compiler/std/trace.optimized.wat b/tests/compiler/std/trace.optimized.wat index 7bccb1c9..bb560579 100644 --- a/tests/compiler/std/trace.optimized.wat +++ b/tests/compiler/std/trace.optimized.wat @@ -12,8 +12,8 @@ (data (i32.const 240) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00f\00i\00v\00e\00_\00i\00n\00t") (data (i32.const 272) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00f\00i\00v\00e\00_\00d\00b\00l") (global $~lib/started (mut i32) (i32.const 0)) + (export "__start" (func $start)) (export "memory" (memory $0)) - (export "main" (func $std/trace/main)) (func $start:std/trace (; 1 ;) (type $FUNCSIG$v) i32.const 24 i32.const 0 @@ -80,14 +80,15 @@ f64.const 5.5 call $~lib/builtins/trace ) - (func $std/trace/main (; 2 ;) (type $FUNCSIG$v) + (func $start (; 2 ;) (type $FUNCSIG$v) global.get $~lib/started - i32.eqz if - call $start:std/trace + return + else i32.const 1 global.set $~lib/started end + call $start:std/trace ) (func $null (; 3 ;) (type $FUNCSIG$v) nop diff --git a/tests/compiler/std/trace.ts b/tests/compiler/std/trace.ts index 0c493461..e8bb145f 100644 --- a/tests/compiler/std/trace.ts +++ b/tests/compiler/std/trace.ts @@ -6,6 +6,3 @@ trace("three_int", 3, 1, 2, 3); trace("four_int", 4, 1, 2, 3, 4); trace("five_int", 5, 1, 2, 3, 4, 5); trace("five_dbl", 5, 1.1, 2.2, 3.3, 4.4, 5.5); - -@start -export function main(): void {} diff --git a/tests/compiler/std/trace.untouched.wat b/tests/compiler/std/trace.untouched.wat index b2dda4af..affdaead 100644 --- a/tests/compiler/std/trace.untouched.wat +++ b/tests/compiler/std/trace.untouched.wat @@ -14,8 +14,8 @@ (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/started (mut i32) (i32.const 0)) + (export "__start" (func $start)) (export "memory" (memory $0)) - (export "main" (func $std/trace/main)) (func $start:std/trace (; 1 ;) (type $FUNCSIG$v) i32.const 24 i32.const 0 @@ -82,18 +82,16 @@ f64.const 5.5 call $~lib/builtins/trace ) - (func $std/trace/main (; 2 ;) (type $FUNCSIG$v) + (func $start (; 2 ;) (type $FUNCSIG$v) global.get $~lib/started - i32.eqz if - call $start + return + else i32.const 1 global.set $~lib/started end - ) - (func $start (; 3 ;) (type $FUNCSIG$v) call $start:std/trace ) - (func $null (; 4 ;) (type $FUNCSIG$v) + (func $null (; 3 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/typedarray.json b/tests/compiler/std/typedarray.json index 9f7878d4..59c251c7 100644 --- a/tests/compiler/std/typedarray.json +++ b/tests/compiler/std/typedarray.json @@ -1,6 +1,7 @@ { "asc_flags": [ "--runtime half", + "--explicitStart", "--use ASC_RTRACE=1" ] } \ No newline at end of file diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 931f9eaa..8e47af5d 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -87,8 +87,8 @@ (global $std/typedarray/forEachValues i32 (i32.const 1112)) (global $std/typedarray/testArrayReverseValues i32 (i32.const 1480)) (global $~lib/started (mut i32) (i32.const 0)) + (export "__start" (func $start)) (export "memory" (memory $0)) - (export "main" (func $std/typedarray/main)) (func $~lib/rt/tlsf/removeBlock (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -15524,14 +15524,15 @@ global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__release ) - (func $std/typedarray/main (; 285 ;) (type $FUNCSIG$v) + (func $start (; 285 ;) (type $FUNCSIG$v) global.get $~lib/started - i32.eqz if - call $start:std/typedarray + return + else i32.const 1 global.set $~lib/started end + call $start:std/typedarray ) (func $~lib/rt/pure/markGray (; 286 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) diff --git a/tests/compiler/std/typedarray.ts b/tests/compiler/std/typedarray.ts index e50dcafa..83e19de5 100644 --- a/tests/compiler/std/typedarray.ts +++ b/tests/compiler/std/typedarray.ts @@ -491,8 +491,6 @@ testArrayReverse(); testArrayReverse(); testArrayReverse(); -@start export function main(): void {} - // Unleak globals __release(changetype(forEachValues)); diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 0e620958..019e9be2 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -104,8 +104,8 @@ (global $~lib/started (mut i32) (i32.const 0)) (global $~lib/rt/__rtti_base i32 (i32.const 1688)) (global $~lib/heap/__heap_base i32 (i32.const 1820)) + (export "__start" (func $start)) (export "memory" (memory $0)) - (export "main" (func $std/typedarray/main)) (func $~lib/rt/tlsf/removeBlock (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -23151,25 +23151,23 @@ global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__release ) - (func $std/typedarray/main (; 393 ;) (type $FUNCSIG$v) + (func $start (; 393 ;) (type $FUNCSIG$v) global.get $~lib/started - i32.eqz if - call $start + return + else i32.const 1 global.set $~lib/started end - ) - (func $start (; 394 ;) (type $FUNCSIG$v) call $start:std/typedarray ) - (func $~lib/array/Array#__visit_impl (; 395 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 394 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 396 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 395 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/markGray (; 397 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 396 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -23196,7 +23194,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 398 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 397 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -23213,7 +23211,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 399 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 398 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -23250,7 +23248,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 400 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 399 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -23288,7 +23286,7 @@ call $~lib/rt/tlsf/freeBlock end ) - (func $~lib/rt/pure/__visit (; 401 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 400 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -23442,7 +23440,7 @@ end end ) - (func $~lib/rt/__visit_members (; 402 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 401 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block @@ -23538,6 +23536,6 @@ end unreachable ) - (func $null (; 403 ;) (type $FUNCSIG$v) + (func $null (; 402 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/runtime/assembly/index.ts b/tests/runtime/assembly/index.ts index 78fc9dcb..19456ac7 100644 --- a/tests/runtime/assembly/index.ts +++ b/tests/runtime/assembly/index.ts @@ -1 +1 @@ -@start export function main(): void {} +export { __free }; diff --git a/tests/runtime/index.html b/tests/runtime/index.html index 4d509b46..0264496e 100644 --- a/tests/runtime/index.html +++ b/tests/runtime/index.html @@ -27,6 +27,7 @@ fetch("untouched.wasm").then(result => }) ).then(result => { exports = result.instance.exports; + if (exports.__start) exports.__start(); U32 = new Uint32Array(exports.memory.buffer); var first = exports.__alloc(255); exports.__free(first); diff --git a/tests/runtime/optimized.wat b/tests/runtime/optimized.wat index 92e5a555..2743486a 100644 --- a/tests/runtime/optimized.wat +++ b/tests/runtime/optimized.wat @@ -1,7 +1,6 @@ (module - (type $FUNCSIG$v (func)) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) - (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) + (type $FUNCSIG$v (func)) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) @@ -9,32 +8,24 @@ (type $FUNCSIG$vi (func (param i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) - (data (i32.const 8) "\1e\00\00\00\01\00\00\00\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data (i32.const 56) "\10\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08") - (global $~lib/started (mut i32) (i32.const 0)) + (data (i32.const 8) "(\00\00\00\01\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") + (data (i32.const 64) "\1e\00\00\00\01\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") + (data (i32.const 112) "$\00\00\00\01\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") + (data (i32.const 168) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 208) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10") (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/rt/purerc/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/purerc/END (mut i32) (i32.const 0)) - (global $~lib/rt/purerc/ROOTS (mut i32) (i32.const 0)) + (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) + (global $~lib/rt/pure/END (mut i32) (i32.const 0)) + (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 208)) (export "memory" (memory $0)) - (export "main" (func $assembly/index/main)) (export "__alloc" (func $~lib/rt/tlsf/__alloc)) - (export "__realloc" (func $~lib/rt/tlsf/__realloc)) + (export "__retain" (func $~lib/rt/pure/__retain)) + (export "__release" (func $~lib/rt/pure/__release)) + (export "__collect" (func $~lib/rt/pure/__collect)) + (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "__free" (func $~lib/rt/tlsf/__free)) - (export "__retain" (func $~lib/rt/purerc/__retain)) - (export "__release" (func $~lib/rt/purerc/__release)) - (export "__collect" (func $~lib/rt/purerc/__collect)) - (export "__instanceof" (func $~lib/rt/common/__instanceof)) - (export "__typeinfo" (func $~lib/rt/common/__typeinfo)) - (func $assembly/index/main (; 1 ;) (type $FUNCSIG$v) - global.get $~lib/started - i32.eqz - if - i32.const 1 - global.set $~lib/started - end - ) - (func $~lib/rt/tlsf/removeBlock (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -87,8 +78,6 @@ local.get $5 i32.store offset=16 end - local.get $1 - local.get $0 local.get $3 i32.const 4 i32.shl @@ -96,11 +85,12 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 + local.get $1 i32.eq if - local.get $0 local.get $3 i32.const 4 i32.shl @@ -108,21 +98,22 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $2 i32.store offset=96 local.get $2 i32.eqz if - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const 1 @@ -150,7 +141,7 @@ end end ) - (func $~lib/rt/tlsf/insertBlock (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/insertBlock (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -159,7 +150,7 @@ (local $7 i32) local.get $1 i32.load - local.set $2 + local.set $3 local.get $1 i32.const 16 i32.add @@ -174,7 +165,7 @@ i32.const 1 i32.and if - local.get $2 + local.get $3 i32.const -4 i32.and i32.const 16 @@ -183,7 +174,7 @@ i32.const -4 i32.and i32.add - local.tee $3 + local.tee $2 i32.const 1073741808 i32.lt_u if @@ -191,12 +182,12 @@ local.get $4 call $~lib/rt/tlsf/removeBlock local.get $1 - local.get $2 + local.get $3 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or - local.tee $2 + local.tee $3 i32.store local.get $1 i32.const 16 @@ -211,7 +202,7 @@ local.set $5 end end - local.get $2 + local.get $3 i32.const 2 i32.and if @@ -219,14 +210,14 @@ i32.const 4 i32.sub i32.load - local.tee $3 + local.tee $2 i32.load local.tee $6 i32.const -4 i32.and i32.const 16 i32.add - local.get $2 + local.get $3 i32.const -4 i32.and i32.add @@ -235,17 +226,17 @@ i32.lt_u if local.get $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 + local.get $2 local.get $6 i32.const 3 i32.and local.get $7 i32.or - local.tee $2 + local.tee $3 i32.store - local.get $3 + local.get $2 local.set $1 end end @@ -259,7 +250,7 @@ i32.sub local.get $1 i32.store - local.get $2 + local.get $3 i32.const -4 i32.and local.tee $2 @@ -269,7 +260,7 @@ local.get $2 i32.const 4 i32.shr_u - local.set $2 + local.set $4 i32.const 0 else local.get $2 @@ -277,49 +268,49 @@ local.get $2 i32.clz i32.sub - local.tee $3 + local.tee $2 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor - local.set $2 - local.get $3 + local.set $4 + local.get $2 i32.const 7 i32.sub end local.set $3 - local.get $0 local.get $3 i32.const 4 i32.shl - local.get $2 + local.get $4 i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 - local.set $4 + local.set $2 local.get $1 i32.const 0 i32.store offset=16 local.get $1 - local.get $4 + local.get $2 i32.store offset=20 - local.get $4 + local.get $2 if - local.get $4 + local.get $2 local.get $1 i32.store offset=16 end - local.get $0 local.get $3 i32.const 4 i32.shl - local.get $2 + local.get $4 i32.add i32.const 2 i32.shl + local.get $0 i32.add local.get $1 i32.store offset=96 @@ -331,24 +322,24 @@ i32.shl i32.or i32.store - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.get $0 local.get $3 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const 1 - local.get $2 + local.get $4 i32.shl i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (; 4 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/addMemory (; 3 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 block (result i32) @@ -412,28 +403,18 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initializeRoot (; 5 ;) (type $FUNCSIG$v) + (func $~lib/rt/tlsf/initializeRoot (; 4 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 192 - local.tee $3 - i32.const 67107 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $1 - current_memory + i32.const 1 + memory.size local.tee $0 i32.gt_s if (result i32) - local.get $1 + i32.const 1 local.get $0 i32.sub - grow_memory + memory.grow i32.const 0 i32.lt_s else @@ -442,23 +423,24 @@ if unreachable end - local.get $3 - local.tee $0 + i32.const 240 i32.const 0 i32.store - local.get $0 + i32.const 1808 i32.const 0 - i32.store offset=1568 + i32.store + i32.const 0 + local.set $0 loop $repeat|0 block $break|0 - local.get $2 + local.get $0 i32.const 23 i32.ge_u br_if $break|0 local.get $0 - local.get $2 i32.const 2 i32.shl + i32.const 240 i32.add i32.const 0 i32.store offset=4 @@ -471,13 +453,13 @@ i32.ge_u br_if $break|1 local.get $0 - local.get $2 i32.const 4 i32.shl local.get $1 i32.add i32.const 2 i32.shl + i32.const 240 i32.add i32.const 0 i32.store offset=96 @@ -488,35 +470,30 @@ br $repeat|1 end end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $repeat|0 end end - local.get $0 - local.get $3 - i32.const 1587 - i32.add - i32.const -16 - i32.and - current_memory + i32.const 240 + i32.const 1824 + memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $0 + i32.const 240 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/prepareSize (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/prepareSize (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1073741808 i32.ge_u if - i32.const 0 i32.const 24 - i32.const 446 + i32.const 80 + i32.const 447 i32.const 29 call $~lib/builtins/abort unreachable @@ -528,15 +505,13 @@ i32.and local.tee $0 i32.const 16 - local.tee $1 local.get $0 - local.get $1 + i32.const 16 i32.gt_u select ) - (func $~lib/rt/tlsf/searchBlock (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 local.get $1 i32.const 256 i32.lt_u @@ -547,28 +522,28 @@ local.set $1 i32.const 0 else - i32.const 31 - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - local.get $1 local.get $1 i32.const 536870904 i32.lt_u - select - local.tee $1 + if + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + local.get $1 + 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.set $2 - local.get $1 - local.get $2 + local.tee $2 i32.const 4 i32.sub i32.shr_u @@ -582,6 +557,7 @@ local.tee $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -590,7 +566,6 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.get $2 @@ -599,6 +574,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -616,13 +592,13 @@ local.get $0 local.get $1 i32.ctz - local.tee $1 + local.tee $0 i32.const 2 i32.shl i32.add i32.load offset=4 i32.ctz - local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -635,13 +611,10 @@ end end ) - (func $~lib/rt/tlsf/growMemory (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - current_memory + memory.size local.tee $2 - local.tee $3 local.get $1 i32.const 65535 i32.add @@ -650,17 +623,16 @@ i32.const 16 i32.shr_u local.tee $1 - local.tee $4 - local.get $3 - local.get $4 + local.get $2 + local.get $1 i32.gt_s select - grow_memory + memory.grow i32.const 0 i32.lt_s if local.get $1 - grow_memory + memory.grow i32.const 0 i32.lt_s if @@ -671,12 +643,12 @@ local.get $2 i32.const 16 i32.shl - current_memory + memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory ) - (func $~lib/rt/tlsf/prepareBlock (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $1 @@ -691,10 +663,10 @@ i32.ge_u if local.get $1 - local.get $2 local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $1 @@ -740,7 +712,7 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/allocateBlock (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -760,7 +732,7 @@ local.set $2 end local.get $2 - i32.const 1 + i32.const 0 i32.store offset=4 local.get $2 local.get $1 @@ -774,7 +746,7 @@ call $~lib/rt/tlsf/prepareBlock local.get $2 ) - (func $~lib/rt/tlsf/__alloc (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/rt/tlsf/ROOT local.tee $2 @@ -793,9 +765,61 @@ i32.const 16 i32.add ) - (func $~lib/memory/memory.copy (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/pure/__retain (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 236 + i32.gt_u + if + local.get $0 + i32.const 16 + i32.sub + local.tee $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.add + i32.store offset=4 + end + local.get $0 + ) + (func $~lib/rt/tlsf/freeBlock (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/__typeinfo (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + i32.const 208 + i32.load + i32.gt_u + if + i32.const 128 + i32.const 184 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + i32.shl + i32.const 212 + i32.add + i32.load + ) + (func $~lib/memory/memory.copy (; 14 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + (local $4 i32) block $~lib/util/memory/memmove|inlined.0 + local.get $2 + local.set $3 local.get $0 local.get $1 i32.eq @@ -817,34 +841,32 @@ i32.const 7 i32.and if - local.get $2 + local.get $3 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $2 + local.get $3 i32.const 1 i32.sub - local.set $2 + local.set $3 local.get $0 - local.tee $3 + local.tee $2 i32.const 1 i32.add local.set $0 - local.get $3 - block (result i32) - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $3 - i32.load8_u - end + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $4 + i32.load8_u i32.store8 br $continue|0 end end loop $continue|1 - local.get $2 + local.get $3 i32.const 8 i32.ge_u if @@ -852,10 +874,10 @@ local.get $1 i64.load i64.store - local.get $2 + local.get $3 i32.const 8 i32.sub - local.set $2 + local.set $3 local.get $0 i32.const 8 i32.add @@ -869,28 +891,26 @@ end end loop $continue|2 - local.get $2 + local.get $3 if local.get $0 - local.tee $3 + local.tee $2 i32.const 1 i32.add local.set $0 - local.get $3 - block (result i32) - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $3 - i32.load8_u - end - i32.store8 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 local.get $2 + local.get $4 + i32.load8_u + i32.store8 + local.get $3 i32.const 1 i32.sub - local.set $2 + local.set $3 br $continue|2 end end @@ -905,22 +925,22 @@ if loop $continue|3 local.get $0 - local.get $2 + local.get $3 i32.add i32.const 7 i32.and if - local.get $2 + local.get $3 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.add local.get $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.store8 @@ -928,18 +948,18 @@ end end loop $continue|4 - local.get $2 + local.get $3 i32.const 8 i32.ge_u if - local.get $2 + local.get $0 + local.get $3 i32.const 8 i32.sub - local.tee $2 - local.get $0 + local.tee $3 i32.add local.get $1 - local.get $2 + local.get $3 i32.add i64.load i64.store @@ -948,16 +968,16 @@ end end loop $continue|5 - local.get $2 + local.get $3 if local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.add local.get $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.store8 @@ -967,235 +987,74 @@ end end ) - (func $~lib/rt/tlsf/reallocateBlock (; 13 ;) (type $FUNCSIG$iiii) (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 $2 - call $~lib/rt/tlsf/prepareSize - local.tee $3 - local.get $1 - i32.load - local.tee $4 - i32.const -4 - i32.and - i32.le_u - if - local.get $0 - local.get $1 - local.get $3 - call $~lib/rt/tlsf/prepareBlock - local.get $1 - local.get $2 - i32.store offset=12 - local.get $1 - return - end - local.get $1 - i32.const 16 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $6 - i32.load - local.tee $5 - i32.const 1 - i32.and - if - local.get $4 - i32.const -4 - i32.and - i32.const 16 - i32.add - local.get $5 - i32.const -4 - i32.and - i32.add - local.tee $5 - local.get $3 - i32.ge_u - if - local.get $0 - local.get $6 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $4 - i32.const 3 - i32.and - local.get $5 - i32.or - i32.store - local.get $1 - local.get $2 - i32.store offset=12 - local.get $0 - local.get $1 - local.get $3 - call $~lib/rt/tlsf/prepareBlock - local.get $1 - return - end - end - local.get $0 - local.get $2 - call $~lib/rt/tlsf/allocateBlock - local.tee $3 - local.get $1 - i32.load offset=4 - i32.store offset=4 - local.get $3 - local.get $1 - i32.load offset=8 - i32.store offset=8 - local.get $3 - i32.const 16 - i32.add - local.get $1 - i32.const 16 - i32.add - local.get $2 - call $~lib/memory/memory.copy - local.get $1 - local.get $4 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $3 - ) - (func $~lib/rt/tlsf/__realloc (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 16 - i32.sub - local.get $1 - call $~lib/rt/tlsf/reallocateBlock - i32.const 16 - i32.add - ) - (func $~lib/rt/tlsf/freeBlock (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/tlsf/__free (; 15 ;) (type $FUNCSIG$vi) (param $0 i32) global.get $~lib/rt/tlsf/ROOT local.get $0 i32.const 16 i32.sub call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/purerc/__retain (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 192 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - local.tee $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.add - i32.store offset=4 - end - local.get $0 - ) - (func $~lib/rt/common/__typeinfo (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) - i32.const 56 - local.set $1 - local.get $0 - if (result i32) - local.get $0 - local.get $1 - i32.load - i32.gt_u - else - i32.const 1 - end - if (result i32) - unreachable - else - local.get $1 - local.get $0 - i32.const 3 - i32.shl - i32.add - i32.load - end - ) - (func $~lib/rt/purerc/growRoots (; 19 ;) (type $FUNCSIG$v) + (func $~lib/rt/pure/growRoots (; 16 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - global.get $~lib/rt/purerc/CUR - global.get $~lib/rt/purerc/ROOTS - local.tee $3 + global.get $~lib/rt/pure/CUR + global.get $~lib/rt/pure/ROOTS + local.tee $1 i32.sub local.tee $2 i32.const 1 i32.shl local.tee $0 i32.const 256 - local.tee $1 local.get $0 - local.get $1 + i32.const 256 i32.gt_u select - local.tee $1 + local.tee $3 i32.const 0 call $~lib/rt/tlsf/__alloc local.tee $0 - local.get $3 + local.get $1 local.get $2 call $~lib/memory/memory.copy + local.get $1 + if + local.get $1 + call $~lib/rt/tlsf/__free + end local.get $0 - global.set $~lib/rt/purerc/ROOTS + global.set $~lib/rt/pure/ROOTS local.get $0 local.get $2 i32.add - global.set $~lib/rt/purerc/CUR + global.set $~lib/rt/pure/CUR local.get $0 - local.get $1 + local.get $3 i32.add - global.set $~lib/rt/purerc/END + global.set $~lib/rt/pure/END ) - (func $~lib/rt/purerc/appendRoot (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/appendRoot (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) - global.get $~lib/rt/purerc/CUR + global.get $~lib/rt/pure/CUR local.tee $1 - global.get $~lib/rt/purerc/END + global.get $~lib/rt/pure/END i32.ge_u if - call $~lib/rt/purerc/growRoots - global.get $~lib/rt/purerc/CUR + call $~lib/rt/pure/growRoots + global.get $~lib/rt/pure/CUR local.set $1 end local.get $1 local.get $0 i32.store local.get $1 - i32.const 1 + i32.const 4 i32.add - global.set $~lib/rt/purerc/CUR + global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/purerc/decrement (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/decrement (; 18 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -1211,7 +1070,7 @@ i32.const 16 i32.add i32.const 1 - call $~lib/builtins/__visit_members + call $~lib/rt/__visit_members local.get $1 i32.const -2147483648 i32.and @@ -1227,8 +1086,8 @@ else local.get $0 i32.load offset=8 - call $~lib/rt/common/__typeinfo - i32.const 8 + call $~lib/rt/__typeinfo + i32.const 16 i32.and if local.get $0 @@ -1254,23 +1113,23 @@ i32.eqz if local.get $0 - call $~lib/rt/purerc/appendRoot + call $~lib/rt/pure/appendRoot end end end ) - (func $~lib/rt/purerc/__release (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/__release (; 19 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 - i32.const 192 + i32.const 236 i32.gt_u if local.get $0 i32.const 16 i32.sub - call $~lib/rt/purerc/decrement + call $~lib/rt/pure/decrement end ) - (func $~lib/rt/purerc/markGray (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1291,10 +1150,10 @@ i32.const 16 i32.add i32.const 2 - call $~lib/builtins/__visit_members + call $~lib/rt/__visit_members end ) - (func $~lib/rt/purerc/scanBlack (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -1305,9 +1164,9 @@ i32.const 16 i32.add i32.const 4 - call $~lib/builtins/__visit_members + call $~lib/rt/__visit_members ) - (func $~lib/rt/purerc/scan (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1324,7 +1183,7 @@ i32.gt_u if local.get $0 - call $~lib/rt/purerc/scanBlack + call $~lib/rt/pure/scanBlack else local.get $0 local.get $1 @@ -1337,48 +1196,55 @@ i32.const 16 i32.add i32.const 3 - call $~lib/builtins/__visit_members + call $~lib/rt/__visit_members end end ) - (func $~lib/rt/purerc/collectWhite (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 local.tee $1 - i32.const -2147483648 - i32.and - i32.eqz - i32.const 0 - local.get $1 i32.const 1879048192 i32.and i32.const 536870912 i32.eq - select + if (result i32) + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + else + i32.const 0 + end if + local.get $0 + local.get $1 + i32.const -1879048193 + i32.and + i32.store offset=4 local.get $0 i32.const 16 i32.add i32.const 5 - call $~lib/builtins/__visit_members + call $~lib/rt/__visit_members + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/purerc/__collect (; 27 ;) (type $FUNCSIG$v) + (func $~lib/rt/pure/__collect (; 24 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/rt/purerc/ROOTS + global.get $~lib/rt/pure/ROOTS local.tee $5 local.tee $2 local.set $3 - global.get $~lib/rt/purerc/CUR + global.get $~lib/rt/pure/CUR local.set $0 loop $repeat|0 block $break|0 @@ -1391,20 +1257,22 @@ local.tee $4 i32.load offset=4 local.tee $1 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.const 0 - local.get $1 i32.const 1879048192 i32.and i32.const 805306368 i32.eq - select + if (result i32) + local.get $1 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + else + i32.const 0 + end if local.get $4 - call $~lib/rt/purerc/markGray + call $~lib/rt/pure/markGray local.get $2 local.get $4 i32.store @@ -1442,7 +1310,7 @@ end end local.get $2 - global.set $~lib/rt/purerc/CUR + global.set $~lib/rt/pure/CUR local.get $5 local.set $0 loop $repeat|1 @@ -1453,7 +1321,7 @@ br_if $break|1 local.get $0 i32.load - call $~lib/rt/purerc/scan + call $~lib/rt/pure/scan local.get $0 i32.const 4 i32.add @@ -1478,7 +1346,7 @@ i32.and i32.store offset=4 local.get $1 - call $~lib/rt/purerc/collectWhite + call $~lib/rt/pure/collectWhite local.get $0 i32.const 4 i32.add @@ -1487,52 +1355,11 @@ end end local.get $5 - global.set $~lib/rt/purerc/CUR + global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/common/__instanceof (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - i32.const 56 - local.set $2 + (func $~lib/rt/pure/__visit (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 - i32.const 16 - i32.sub - i32.load offset=8 - local.tee $0 - if (result i32) - local.get $0 - local.get $2 - i32.load - i32.le_u - else - i32.const 0 - end - if - loop $continue|0 - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - return - end - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - i32.load offset=4 - local.tee $0 - br_if $continue|0 - end - end - i32.const 0 - ) - (func $start (; 29 ;) (type $FUNCSIG$v) - nop - ) - (func $~lib/rt/purerc/__visit (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - local.get $0 - i32.const 192 + i32.const 236 i32.lt_u if return @@ -1546,14 +1373,24 @@ block $case3|0 block $case2|0 block $case1|0 - block $case0|0 + local.get $1 + i32.const 1 + i32.ne + if local.get $1 - i32.const 1 - i32.sub - br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 $break|0 + i32.const 2 + i32.eq + br_if $case1|0 + block $tablify|0 + local.get $1 + i32.const 3 + i32.sub + br_table $case2|0 $case3|0 $case4|0 $tablify|0 + end + br $break|0 end local.get $0 - call $~lib/rt/purerc/decrement + call $~lib/rt/pure/decrement br $break|0 end local.get $0 @@ -1563,11 +1400,11 @@ i32.sub i32.store offset=4 local.get $0 - call $~lib/rt/purerc/markGray + call $~lib/rt/pure/markGray br $break|0 end local.get $0 - call $~lib/rt/purerc/scan + call $~lib/rt/pure/scan br $break|0 end local.get $0 @@ -1582,83 +1419,39 @@ i32.and if local.get $0 - call $~lib/rt/purerc/scanBlack + call $~lib/rt/pure/scanBlack end br $break|0 end local.get $0 - call $~lib/rt/purerc/collectWhite + call $~lib/rt/pure/collectWhite end ) - (func $~lib/builtins/__visit_members (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/arraybuffer/ArrayBufferView - block $~lib/number/F64 - block $~lib/number/F32 - block $~lib/number/Bool - block $~lib/number/Usize - block $~lib/number/U64 - block $~lib/number/U32 - block $~lib/number/U16 - block $~lib/number/U8 - block $~lib/number/Isize - block $~lib/number/I64 - block $~lib/number/I32 - block $~lib/number/I16 - block $~lib/number/I8 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 1 - i32.sub - br_table $~lib/number/I8 $~lib/number/I16 $~lib/number/I32 $~lib/number/I64 $~lib/number/Isize $~lib/number/U8 $~lib/number/U16 $~lib/number/U32 $~lib/number/U64 $~lib/number/Usize $~lib/number/Bool $~lib/number/F32 $~lib/number/F64 $~lib/arraybuffer/ArrayBufferView $~lib/arraybuffer/ArrayBuffer $~lib/string/String $invalid - 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 + (func $~lib/rt/__visit_members (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + block $switch$1$default + block $switch$1$case$4 + block $switch$1$case$2 local.get $0 + i32.const 8 + i32.sub i32.load - local.tee $0 - if - local.get $0 - local.get $1 - call $~lib/rt/purerc/__visit - local.get $0 - local.get $1 - call $~lib/builtins/__visit_members - end - return + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$default end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + local.get $1 + call $~lib/rt/pure/__visit + end return end unreachable ) + (func $null (; 27 ;) (type $FUNCSIG$v) + nop + ) ) diff --git a/tests/runtime/untouched.wasm b/tests/runtime/untouched.wasm index e1c64929..b00317d7 100644 Binary files a/tests/runtime/untouched.wasm and b/tests/runtime/untouched.wasm differ diff --git a/tests/runtime/untouched.wat b/tests/runtime/untouched.wat index f96fadeb..628180b8 100644 --- a/tests/runtime/untouched.wat +++ b/tests/runtime/untouched.wat @@ -1,6 +1,6 @@ (module - (type $FUNCSIG$v (func)) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) + (type $FUNCSIG$v (func)) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$vii (func (param i32 i32))) @@ -9,38 +9,29 @@ (type $FUNCSIG$vi (func (param i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) - (data (i32.const 8) "\1e\00\00\00\01\00\00\00\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 56) "\"\00\00\00\01\00\00\00\10\00\00\00\"\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00r\00c\00.\00t\00s\00") - (data (i32.const 112) "\10\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") + (data (i32.const 8) "\1e\00\00\00\01\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") + (data (i32.const 56) "(\00\00\00\01\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") + (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 160) "$\00\00\00\01\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") + (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") + (data (i32.const 256) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) - (global $~lib/started (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/rt/purerc/CUR (mut i32) (i32.const 0)) - (global $~lib/rt/purerc/END (mut i32) (i32.const 0)) - (global $~lib/rt/purerc/ROOTS (mut i32) (i32.const 0)) - (global $~lib/builtins/RTTI_BASE i32 (i32.const 112)) - (global $~lib/builtins/HEAP_BASE i32 (i32.const 248)) + (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) + (global $~lib/rt/pure/END (mut i32) (i32.const 0)) + (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 256)) + (global $~lib/heap/__heap_base i32 (i32.const 284)) (export "memory" (memory $0)) - (export "main" (func $assembly/index/main)) (export "__alloc" (func $~lib/rt/tlsf/__alloc)) - (export "__realloc" (func $~lib/rt/tlsf/__realloc)) + (export "__retain" (func $~lib/rt/pure/__retain)) + (export "__release" (func $~lib/rt/pure/__release)) + (export "__collect" (func $~lib/rt/pure/__collect)) + (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "__free" (func $~lib/rt/tlsf/__free)) - (export "__retain" (func $~lib/rt/purerc/__retain)) - (export "__release" (func $~lib/rt/purerc/__release)) - (export "__collect" (func $~lib/rt/purerc/__collect)) - (export "__instanceof" (func $~lib/rt/common/__instanceof)) - (export "__typeinfo" (func $~lib/rt/common/__typeinfo)) - (func $assembly/index/main (; 1 ;) (type $FUNCSIG$v) - global.get $~lib/started - i32.eqz - if - call $start - i32.const 1 - global.set $~lib/started - end - ) - (func $~lib/rt/tlsf/removeBlock (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -61,7 +52,7 @@ if i32.const 0 i32.const 24 - i32.const 275 + i32.const 276 i32.const 13 call $~lib/builtins/abort unreachable @@ -86,7 +77,7 @@ if i32.const 0 i32.const 24 - i32.const 277 + i32.const 278 i32.const 13 call $~lib/builtins/abort unreachable @@ -138,7 +129,7 @@ if i32.const 0 i32.const 24 - i32.const 290 + i32.const 291 i32.const 13 call $~lib/builtins/abort unreachable @@ -162,7 +153,7 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) local.get $0 local.set $10 local.get $4 @@ -218,30 +209,30 @@ i32.add i32.load offset=4 end - local.set $8 + local.set $9 block $~lib/rt/tlsf/SETSL|inlined.1 local.get $0 - local.set $11 + local.set $8 local.get $4 - local.set $10 - local.get $8 + local.set $11 + local.get $9 i32.const 1 local.get $5 i32.shl i32.const -1 i32.xor i32.and - local.tee $8 - local.set $9 + local.tee $9 + local.set $10 + local.get $8 local.get $11 - local.get $10 i32.const 2 i32.shl i32.add - local.get $9 + local.get $10 i32.store offset=4 end - local.get $8 + local.get $9 i32.eqz if local.get $0 @@ -258,7 +249,7 @@ end end ) - (func $~lib/rt/tlsf/insertBlock (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/insertBlock (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -276,7 +267,7 @@ if i32.const 0 i32.const 24 - i32.const 203 + i32.const 204 i32.const 13 call $~lib/builtins/abort unreachable @@ -291,7 +282,7 @@ if i32.const 0 i32.const 24 - i32.const 205 + i32.const 206 i32.const 13 call $~lib/builtins/abort unreachable @@ -373,29 +364,29 @@ if block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) local.get $1 - local.set $3 - local.get $3 + local.set $6 + local.get $6 i32.const 4 i32.sub i32.load end - local.set $3 - local.get $3 - i32.load local.set $6 local.get $6 + i32.load + local.set $3 + local.get $3 i32.const 1 i32.and i32.eqz if i32.const 0 i32.const 24 - i32.const 226 + i32.const 227 i32.const 15 call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 3 i32.const -1 i32.xor @@ -414,17 +405,17 @@ i32.lt_u if local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 i32.const 3 i32.and local.get $7 i32.or local.tee $2 i32.store - local.get $3 + local.get $6 local.set $1 end end @@ -453,7 +444,7 @@ if i32.const 0 i32.const 24 - i32.const 241 + i32.const 242 i32.const 13 call $~lib/builtins/abort unreachable @@ -469,7 +460,7 @@ if i32.const 0 i32.const 24 - i32.const 242 + i32.const 243 i32.const 13 call $~lib/builtins/abort unreachable @@ -526,23 +517,23 @@ if i32.const 0 i32.const 24 - i32.const 258 + i32.const 259 i32.const 13 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $10 local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 local.get $3 - local.get $6 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl @@ -566,21 +557,21 @@ local.get $0 local.set $12 local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $1 local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 local.get $12 - local.get $3 + local.get $7 i32.const 4 i32.shl - local.get $6 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $7 + local.get $6 i32.store offset=96 end local.get $0 @@ -592,13 +583,17 @@ i32.or i32.store block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $0 + local.set $13 + local.get $9 + local.set $12 block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $0 - local.set $13 + local.set $3 local.get $9 - local.set $12 - local.get $13 - local.get $12 + local.set $6 + local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -608,17 +603,17 @@ local.get $10 i32.shl i32.or - local.set $3 - local.get $0 - local.get $9 + local.set $7 + local.get $13 + local.get $12 i32.const 2 i32.shl i32.add - local.get $3 + local.get $7 i32.store offset=4 end ) - (func $~lib/rt/tlsf/addMemory (; 4 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/addMemory (; 3 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -649,7 +644,7 @@ if i32.const 0 i32.const 24 - i32.const 384 + i32.const 385 i32.const 4 call $~lib/builtins/abort unreachable @@ -674,7 +669,7 @@ if i32.const 0 i32.const 24 - i32.const 394 + i32.const 395 i32.const 15 call $~lib/builtins/abort unreachable @@ -705,7 +700,7 @@ if i32.const 0 i32.const 24 - i32.const 406 + i32.const 407 i32.const 4 call $~lib/builtins/abort unreachable @@ -716,11 +711,7 @@ i32.sub local.set $6 local.get $6 - i32.const 16 - i32.const 16 - i32.add - i32.const 16 - i32.add + i32.const 48 i32.lt_u if i32.const 0 @@ -774,7 +765,7 @@ call $~lib/rt/tlsf/insertBlock i32.const 1 ) - (func $~lib/rt/tlsf/initializeRoot (; 5 ;) (type $FUNCSIG$v) + (func $~lib/rt/tlsf/initializeRoot (; 4 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -785,7 +776,7 @@ (local $7 i32) (local $8 i32) (local $9 i32) - global.get $~lib/builtins/HEAP_BASE + global.get $~lib/heap/__heap_base i32.const 15 i32.add i32.const 15 @@ -793,7 +784,7 @@ i32.xor i32.and local.set $0 - current_memory + memory.size local.set $1 local.get $0 i32.const 1572 @@ -814,7 +805,7 @@ local.get $2 local.get $1 i32.sub - grow_memory + memory.grow i32.const 0 i32.lt_s else @@ -839,9 +830,9 @@ end block $break|0 i32.const 0 - local.set $4 + local.set $5 loop $repeat|0 - local.get $4 + local.get $5 i32.const 23 i32.lt_u i32.eqz @@ -849,23 +840,23 @@ block $~lib/rt/tlsf/SETSL|inlined.0 local.get $3 local.set $7 - local.get $4 + local.get $5 local.set $6 i32.const 0 - local.set $5 + local.set $4 local.get $7 local.get $6 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 i32.store offset=4 end block $break|1 i32.const 0 - local.set $5 + local.set $7 loop $repeat|1 - local.get $5 + local.get $7 i32.const 16 i32.lt_u i32.eqz @@ -873,37 +864,37 @@ block $~lib/rt/tlsf/SETHEAD|inlined.0 local.get $3 local.set $9 - local.get $4 - local.set $8 local.get $5 - local.set $7 - i32.const 0 + local.set $8 + local.get $7 local.set $6 + i32.const 0 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add i32.const 2 i32.shl i32.add - local.get $6 + local.get $4 i32.store offset=96 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $repeat|1 unreachable end unreachable end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 unreachable end @@ -919,7 +910,7 @@ i32.const -1 i32.xor i32.and - current_memory + memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory @@ -927,16 +918,16 @@ local.get $3 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/prepareSize (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/prepareSize (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 i32.const 1073741808 i32.ge_u if - i32.const 0 + i32.const 72 i32.const 24 - i32.const 446 + i32.const 447 i32.const 29 call $~lib/builtins/abort unreachable @@ -956,7 +947,7 @@ i32.gt_u select ) - (func $~lib/rt/tlsf/searchBlock (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1030,7 +1021,7 @@ if i32.const 0 i32.const 24 - i32.const 336 + i32.const 337 i32.const 13 call $~lib/builtins/abort unreachable @@ -1054,6 +1045,8 @@ i32.shl i32.and local.set $6 + i32.const 0 + local.set $7 local.get $6 i32.eqz if @@ -1067,23 +1060,23 @@ i32.add i32.shl i32.and - local.set $4 - local.get $4 + local.set $5 + local.get $5 i32.eqz if i32.const 0 local.set $7 else - local.get $4 + local.get $5 i32.ctz local.set $2 block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) local.get $0 local.set $8 local.get $2 - local.set $5 + local.set $4 local.get $8 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -1095,24 +1088,24 @@ if i32.const 0 i32.const 24 - i32.const 349 + i32.const 350 i32.const 17 call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) local.get $0 local.set $9 local.get $2 local.set $8 local.get $6 i32.ctz - local.set $5 + local.set $4 local.get $9 local.get $8 i32.const 4 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.shl @@ -1122,16 +1115,16 @@ local.set $7 end else - block $~lib/rt/tlsf/GETHEAD|inlined.4 (result i32) + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 - local.set $8 + local.set $9 local.get $2 - local.set $5 + local.set $8 local.get $6 i32.ctz local.set $4 + local.get $9 local.get $8 - local.get $5 i32.const 4 i32.shl local.get $4 @@ -1145,14 +1138,14 @@ end local.get $7 ) - (func $~lib/rt/tlsf/growMemory (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - current_memory + memory.size local.set $2 local.get $1 i32.const 65535 @@ -1174,19 +1167,19 @@ select local.set $6 local.get $6 - grow_memory + memory.grow i32.const 0 i32.lt_s if local.get $3 - grow_memory + memory.grow i32.const 0 i32.lt_s if unreachable end end - current_memory + memory.size local.set $7 local.get $0 local.get $2 @@ -1198,7 +1191,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1213,7 +1206,7 @@ if i32.const 0 i32.const 24 - i32.const 363 + i32.const 364 i32.const 13 call $~lib/builtins/abort unreachable @@ -1227,9 +1220,7 @@ i32.sub local.set $4 local.get $4 - i32.const 16 - i32.const 16 - i32.add + i32.const 32 i32.ge_u if local.get $1 @@ -1299,7 +1290,7 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/allocateBlock (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $1 @@ -1324,7 +1315,7 @@ if i32.const 0 i32.const 24 - i32.const 476 + i32.const 477 i32.const 15 call $~lib/builtins/abort unreachable @@ -1342,13 +1333,13 @@ if i32.const 0 i32.const 24 - i32.const 478 + i32.const 479 i32.const 13 call $~lib/builtins/abort unreachable end local.get $3 - i32.const 1 + i32.const 0 i32.store offset=4 local.get $3 local.get $1 @@ -1362,7 +1353,7 @@ call $~lib/rt/tlsf/prepareBlock local.get $3 ) - (func $~lib/rt/tlsf/__alloc (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) global.get $~lib/rt/tlsf/ROOT @@ -1385,445 +1376,7 @@ i32.const 16 i32.add ) - (func $~lib/memory/memory.copy (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.get $1 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 - local.get $1 - i32.lt_u - if - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - block $break|0 - loop $continue|0 - local.get $0 - i32.const 7 - i32.and - if - local.get $2 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $2 - i32.const 1 - i32.sub - local.set $2 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - br $continue|0 - end - end - end - block $break|1 - loop $continue|1 - local.get $2 - i32.const 8 - i32.ge_u - if - local.get $0 - local.get $1 - i64.load - i64.store - local.get $2 - i32.const 8 - i32.sub - local.set $2 - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $continue|1 - end - end - end - end - block $break|2 - loop $continue|2 - local.get $2 - if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $continue|2 - end - end - end - else - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - block $break|3 - loop $continue|3 - local.get $0 - local.get $2 - i32.add - i32.const 7 - i32.and - if - local.get $2 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.add - local.get $1 - local.get $2 - i32.add - i32.load8_u - i32.store8 - br $continue|3 - end - end - end - block $break|4 - loop $continue|4 - local.get $2 - i32.const 8 - i32.ge_u - if - local.get $2 - i32.const 8 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.add - local.get $1 - local.get $2 - i32.add - i64.load - i64.store - br $continue|4 - end - end - end - end - block $break|5 - loop $continue|5 - local.get $2 - if - local.get $0 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.add - local.get $1 - local.get $2 - i32.add - i32.load8_u - i32.store8 - br $continue|5 - end - end - end - end - end - ) - (func $~lib/rt/tlsf/reallocateBlock (; 13 ;) (type $FUNCSIG$iiii) (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.get $2 - call $~lib/rt/tlsf/prepareSize - local.set $3 - local.get $1 - i32.load - local.set $4 - local.get $4 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 491 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.le_u - if - local.get $0 - local.get $1 - local.get $3 - call $~lib/rt/tlsf/prepareBlock - local.get $1 - local.get $2 - i32.store offset=12 - local.get $1 - return - end - block $~lib/rt/tlsf/GETRIGHT|inlined.4 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - local.set $6 - local.get $6 - i32.load - local.set $7 - local.get $7 - i32.const 1 - i32.and - if - local.get $4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.add - local.get $7 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $5 - local.get $5 - local.get $3 - i32.ge_u - if - local.get $0 - local.get $6 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $4 - i32.const 3 - i32.and - local.get $5 - i32.or - i32.store - local.get $1 - local.get $2 - i32.store offset=12 - local.get $0 - local.get $1 - local.get $3 - call $~lib/rt/tlsf/prepareBlock - local.get $1 - return - end - end - local.get $0 - local.get $2 - call $~lib/rt/tlsf/allocateBlock - local.set $8 - local.get $8 - local.get $1 - i32.load offset=4 - i32.store offset=4 - local.get $8 - local.get $1 - i32.load offset=8 - i32.store offset=8 - local.get $8 - i32.const 16 - i32.add - local.get $1 - i32.const 16 - i32.add - local.get $2 - call $~lib/memory/memory.copy - local.get $1 - local.get $4 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $8 - ) - (func $~lib/rt/tlsf/__realloc (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 550 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 551 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 16 - i32.sub - local.get $1 - call $~lib/rt/tlsf/reallocateBlock - i32.const 16 - i32.add - ) - (func $~lib/rt/tlsf/freeBlock (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 529 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 558 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 559 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/purerc/increment (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/increment (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1844,8 +1397,8 @@ i32.eqz if i32.const 0 - i32.const 72 - i32.const 103 + i32.const 128 + i32.const 104 i32.const 2 call $~lib/builtins/abort unreachable @@ -1855,54 +1408,1550 @@ i32.const 1 i32.add i32.store offset=4 - ) - (func $~lib/rt/purerc/__retain (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - global.get $~lib/builtins/HEAP_BASE + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 107 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/pure/__retain (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base i32.gt_u if local.get $0 i32.const 16 i32.sub - call $~lib/rt/purerc/increment + call $~lib/rt/pure/increment end local.get $0 ) - (func $~lib/rt/common/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/freeBlock (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $1 + i32.load + local.set $2 + local.get $2 + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 531 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/__typeinfo (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/builtins/RTTI_BASE + global.get $~lib/rt/__rtti_base local.set $1 local.get $0 - i32.eqz - if (result i32) - i32.const 1 - else - local.get $0 - local.get $1 - i32.load - i32.gt_u - end - if (result i32) + local.get $1 + i32.load + i32.gt_u + if + i32.const 176 + i32.const 232 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable - else - local.get $1 - local.get $0 + end + local.get $1 + i32.const 4 + i32.add + local.get $0 + i32.const 8 + i32.mul + i32.add + i32.load + ) + (func $~lib/util/memory/memcpy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $break|0 + loop $continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + if + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $continue|0 + end + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + block $break|1 + loop $continue|1 + local.get $2 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|1 + end + end + end + local.get $2 i32.const 8 - i32.mul - i32.add - i32.load + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + block + local.get $1 + i32.load + local.set $3 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + block $break|3 + loop $continue|3 + local.get $2 + i32.const 17 + i32.ge_u + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|3 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + local.get $1 + i32.load + local.set $3 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + block $break|4 + loop $continue|4 + local.get $2 + i32.const 18 + i32.ge_u + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|4 + end + end + end + br $break|2 + unreachable + end + unreachable + end + block + local.get $1 + i32.load + local.set $3 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end + end + end + br $break|2 + unreachable + end + unreachable + end + end + local.get $2 + i32.const 16 + i32.and + if + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + block (result i32) + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + end + block (result i32) + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + end + i32.load8_u + i32.store8 end ) - (func $~lib/rt/purerc/growRoots (; 20 ;) (type $FUNCSIG$v) + (func $~lib/memory/memory.copy (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $4 + local.get $3 + i32.add + local.get $5 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $5 + local.get $3 + i32.add + local.get $4 + i32.le_u + end + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + block $break|0 + loop $continue|0 + local.get $5 + i32.const 7 + i32.and + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + block (result i32) + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + end + block (result i32) + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 + end + i32.load8_u + i32.store8 + br $continue|0 + end + end + end + block $break|1 + loop $continue|1 + local.get $3 + i32.const 8 + i32.ge_u + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $continue|1 + end + end + end + end + block $break|2 + loop $continue|2 + local.get $3 + if + block (result i32) + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + end + block (result i32) + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 + end + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $continue|2 + end + end + end + else + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + block $break|3 + loop $continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + local.get $3 + i32.const 8 + i32.ge_u + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $continue|4 + end + end + end + end + block $break|5 + loop $continue|5 + local.get $3 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + end + end + ) + (func $~lib/rt/tlsf/__free (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 561 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 562 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/pure/growRoots (; 18 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/rt/purerc/ROOTS + global.get $~lib/rt/pure/ROOTS local.set $0 - global.get $~lib/rt/purerc/CUR + global.get $~lib/rt/pure/CUR local.get $0 i32.sub local.set $1 @@ -1927,38 +2976,43 @@ local.get $0 local.get $1 call $~lib/memory/memory.copy + local.get $0 + if + local.get $0 + call $~lib/rt/tlsf/__free + end local.get $5 - global.set $~lib/rt/purerc/ROOTS + global.set $~lib/rt/pure/ROOTS local.get $5 local.get $1 i32.add - global.set $~lib/rt/purerc/CUR + global.set $~lib/rt/pure/CUR local.get $5 local.get $4 i32.add - global.set $~lib/rt/purerc/END + global.set $~lib/rt/pure/END ) - (func $~lib/rt/purerc/appendRoot (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/appendRoot (; 19 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) - global.get $~lib/rt/purerc/CUR + global.get $~lib/rt/pure/CUR local.set $1 local.get $1 - global.get $~lib/rt/purerc/END + global.get $~lib/rt/pure/END i32.ge_u if - call $~lib/rt/purerc/growRoots - global.get $~lib/rt/purerc/CUR + call $~lib/rt/pure/growRoots + global.get $~lib/rt/pure/CUR local.set $1 end local.get $1 local.get $0 i32.store local.get $1 - i32.const 1 + i32.const 4 i32.add - global.set $~lib/rt/purerc/CUR + global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/purerc/decrement (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/decrement (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -1968,6 +3022,20 @@ i32.const 268435455 i32.and local.set $2 + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 115 + i32.const 13 + call $~lib/builtins/abort + unreachable + end local.get $2 i32.const 1 i32.eq @@ -1976,7 +3044,7 @@ i32.const 16 i32.add i32.const 1 - call $~lib/builtins/__visit_members + call $~lib/rt/__visit_members local.get $1 i32.const -2147483648 i32.and @@ -2001,16 +3069,16 @@ i32.eqz if i32.const 0 - i32.const 72 - i32.const 119 + i32.const 128 + i32.const 124 i32.const 15 call $~lib/builtins/abort unreachable end local.get $0 i32.load offset=8 - call $~lib/rt/common/__typeinfo - i32.const 8 + call $~lib/rt/__typeinfo + i32.const 16 i32.and i32.eqz if @@ -2029,7 +3097,7 @@ i32.eqz if local.get $0 - call $~lib/rt/purerc/appendRoot + call $~lib/rt/pure/appendRoot end else local.get $0 @@ -2046,18 +3114,18 @@ end end ) - (func $~lib/rt/purerc/__release (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/__release (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 - global.get $~lib/builtins/HEAP_BASE + global.get $~lib/heap/__heap_base i32.gt_u if local.get $0 i32.const 16 i32.sub - call $~lib/rt/purerc/decrement + call $~lib/rt/pure/decrement end ) - (func $~lib/rt/purerc/markGray (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -2081,10 +3149,10 @@ i32.const 16 i32.add i32.const 2 - call $~lib/builtins/__visit_members + call $~lib/rt/__visit_members end ) - (func $~lib/rt/purerc/scanBlack (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -2099,9 +3167,9 @@ i32.const 16 i32.add i32.const 4 - call $~lib/builtins/__visit_members + call $~lib/rt/__visit_members ) - (func $~lib/rt/purerc/scan (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -2119,7 +3187,7 @@ i32.gt_u if local.get $0 - call $~lib/rt/purerc/scanBlack + call $~lib/rt/pure/scanBlack else local.get $0 local.get $1 @@ -2134,11 +3202,11 @@ i32.const 16 i32.add i32.const 3 - call $~lib/builtins/__visit_members + call $~lib/rt/__visit_members end end ) - (func $~lib/rt/purerc/collectWhite (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -2157,24 +3225,33 @@ i32.const 0 end if + local.get $0 + local.get $1 + i32.const 1879048192 + i32.const -1 + i32.xor + i32.and + i32.const 0 + i32.or + i32.store offset=4 local.get $0 i32.const 16 i32.add i32.const 5 - call $~lib/builtins/__visit_members + call $~lib/rt/__visit_members + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/purerc/__collect (; 28 ;) (type $FUNCSIG$v) + (func $~lib/rt/pure/__collect (; 26 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/rt/purerc/ROOTS + global.get $~lib/rt/pure/ROOTS local.set $0 local.get $0 local.set $1 @@ -2182,7 +3259,7 @@ block local.get $1 local.set $2 - global.get $~lib/rt/purerc/CUR + global.get $~lib/rt/pure/CUR local.set $3 end loop $repeat|0 @@ -2213,7 +3290,7 @@ end if local.get $4 - call $~lib/rt/purerc/markGray + call $~lib/rt/pure/markGray local.get $1 local.get $4 i32.store @@ -2259,7 +3336,7 @@ unreachable end local.get $1 - global.set $~lib/rt/purerc/CUR + global.set $~lib/rt/pure/CUR block $break|1 local.get $0 local.set $5 @@ -2271,7 +3348,7 @@ br_if $break|1 local.get $5 i32.load - call $~lib/rt/purerc/scan + call $~lib/rt/pure/scan local.get $5 i32.const 4 i32.add @@ -2302,7 +3379,7 @@ i32.and i32.store offset=4 local.get $4 - call $~lib/rt/purerc/collectWhite + call $~lib/rt/pure/collectWhite local.get $5 i32.const 4 i32.add @@ -2313,55 +3390,13 @@ unreachable end local.get $0 - global.set $~lib/rt/purerc/CUR + global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/common/__instanceof (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/pure/__visit (; 27 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 - i32.const 16 - i32.sub - i32.load offset=8 - local.set $2 - global.get $~lib/builtins/RTTI_BASE - local.set $3 - local.get $2 - if (result i32) - local.get $2 - local.get $3 - i32.load - i32.le_u - else - i32.const 0 - end - if - loop $continue|0 - local.get $2 - local.get $1 - i32.eq - if - i32.const 1 - return - end - local.get $3 - local.get $2 - i32.const 8 - i32.mul - i32.add - i32.load offset=4 - local.tee $2 - br_if $continue|0 - end - end - i32.const 0 - ) - (func $start (; 30 ;) (type $FUNCSIG$v) - ) - (func $~lib/rt/purerc/__visit (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/builtins/HEAP_BASE + global.get $~lib/heap/__heap_base i32.lt_u if return @@ -2403,7 +3438,7 @@ end block local.get $2 - call $~lib/rt/purerc/decrement + call $~lib/rt/pure/decrement br $break|0 unreachable end @@ -2419,8 +3454,8 @@ i32.eqz if i32.const 0 - i32.const 72 - i32.const 74 + i32.const 128 + i32.const 75 i32.const 17 call $~lib/builtins/abort unreachable @@ -2432,7 +3467,7 @@ i32.sub i32.store offset=4 local.get $2 - call $~lib/rt/purerc/markGray + call $~lib/rt/pure/markGray br $break|0 unreachable end @@ -2440,7 +3475,7 @@ end block local.get $2 - call $~lib/rt/purerc/scan + call $~lib/rt/pure/scan br $break|0 unreachable end @@ -2466,8 +3501,8 @@ i32.eqz if i32.const 0 - i32.const 72 - i32.const 85 + i32.const 128 + i32.const 86 i32.const 6 call $~lib/builtins/abort unreachable @@ -2484,7 +3519,7 @@ i32.ne if local.get $2 - call $~lib/rt/purerc/scanBlack + call $~lib/rt/pure/scanBlack end br $break|0 unreachable @@ -2493,7 +3528,7 @@ end block local.get $2 - call $~lib/rt/purerc/collectWhite + call $~lib/rt/pure/collectWhite br $break|0 unreachable end @@ -2503,84 +3538,71 @@ i32.eqz if i32.const 0 - i32.const 72 - i32.const 96 + i32.const 128 + i32.const 97 i32.const 24 call $~lib/builtins/abort unreachable end end ) - (func $~lib/builtins/__visit_members (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/arraybuffer/ArrayBufferView - block $~lib/number/F64 - block $~lib/number/F32 - block $~lib/number/Bool - block $~lib/number/Usize - block $~lib/number/U64 - block $~lib/number/U32 - block $~lib/number/U16 - block $~lib/number/U8 - block $~lib/number/Isize - block $~lib/number/I64 - block $~lib/number/I32 - block $~lib/number/I16 - block $~lib/number/I8 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $invalid $~lib/number/I8 $~lib/number/I16 $~lib/number/I32 $~lib/number/I64 $~lib/number/Isize $~lib/number/U8 $~lib/number/U16 $~lib/number/U32 $~lib/number/U64 $~lib/number/Usize $~lib/number/Bool $~lib/number/F32 $~lib/number/F64 $~lib/arraybuffer/ArrayBufferView $~lib/arraybuffer/ArrayBuffer $~lib/string/String $invalid - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return + block + end + block $switch$1$leave + block $switch$1$default + block $switch$1$case$4 + block $switch$1$case$2 + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$default + end + block + block + return + unreachable + end + unreachable + unreachable + end + unreachable + end + block + block + block + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit end return + unreachable end - return + unreachable + unreachable end - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/purerc/__visit - local.get $2 - local.get $1 - call $~lib/builtins/__visit_members - end - return + unreachable + unreachable end - return + unreachable end - return + block + block + unreachable + unreachable + end + unreachable + unreachable + end + unreachable end - unreachable ) - (func $null (; 33 ;) (type $FUNCSIG$v) + (func $null (; 29 ;) (type $FUNCSIG$v) ) )