From 3224925e472282ddb5f2fee220fdbea53e2f8b32 Mon Sep 17 00:00:00 2001 From: dcode Date: Sat, 25 May 2019 19:16:09 +0200 Subject: [PATCH] eliminate retainRelease and skippedRelease --- src/common.ts | 2 - src/compiler.ts | 46 +- src/flow.ts | 91 +- src/module.ts | 104 +- src/program.ts | 6 - std/assembly/array.ts | 12 +- std/assembly/map.ts | 12 +- std/assembly/rt.ts | 8 - std/assembly/rt/README.md | 6 - std/assembly/rt/index.d.ts | 2 - std/assembly/rt/pure.ts | 18 - std/assembly/rt/stub.ts | 12 - tests/compiler/instanceof.untouched.wat | 35 +- tests/compiler/possibly-null.untouched.wat | 106 +- tests/compiler/rc/global-init.optimized.wat | 146 +- tests/compiler/rc/global-init.untouched.wat | 70 +- .../retain-release-sanity.optimized.wat | 108 +- .../retain-release-sanity.untouched.wat | 174 +- tests/compiler/retain-release.optimized.wat | 33 +- tests/compiler/retain-release.untouched.wat | 196 +- tests/compiler/std/array-access.untouched.wat | 69 +- tests/compiler/std/array.optimized.wat | 2016 ++++++----- tests/compiler/std/array.untouched.wat | 3038 ++++++++++------- tests/compiler/std/arraybuffer.untouched.wat | 196 +- tests/compiler/std/dataview.untouched.wat | 157 +- tests/compiler/std/map.optimized.wat | 728 ++-- tests/compiler/std/map.untouched.wat | 1049 +++--- .../std/operator-overloading.untouched.wat | 239 +- tests/compiler/std/pointer.untouched.wat | 89 +- tests/compiler/std/set.optimized.wat | 680 ++-- tests/compiler/std/set.untouched.wat | 1029 ++++-- tests/compiler/std/string.optimized.wat | 335 +- tests/compiler/std/string.untouched.wat | 549 +-- tests/compiler/std/symbol.optimized.wat | 22 +- tests/compiler/std/symbol.untouched.wat | 531 ++- tests/compiler/std/typedarray.optimized.wat | 1033 +++--- tests/compiler/std/typedarray.untouched.wat | 1111 +++--- 37 files changed, 8521 insertions(+), 5537 deletions(-) diff --git a/src/common.ts b/src/common.ts index 336e4a54..31912656 100644 --- a/src/common.ts +++ b/src/common.ts @@ -198,8 +198,6 @@ export namespace CommonSymbols { export const free = "__free"; export const retain = "__retain"; export const release = "__release"; - export const retainRelease = "__retainRelease"; - export const skippedRelease = "__skippedRelease"; export const collect = "__collect"; export const typeinfo = "__typeinfo"; export const instanceof_ = "__instanceof"; diff --git a/src/compiler.ts b/src/compiler.ts index e10a4c75..67e9bd71 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -6522,18 +6522,48 @@ export class Compiler extends DiagnosticEmitter { /** Makes a retainRelease call, retaining the new expression's value and releasing the old expression's value, in this order. */ makeRetainRelease(oldExpr: ExpressionRef, newExpr: ExpressionRef): ExpressionRef { - // FIXME: this is a workaround, see https://github.com/WebAssembly/binaryen/issues/2135 - var retainReleaseInstance = this.program.retainReleaseInstance; - this.compileFunction(retainReleaseInstance); - return this.module.call(retainReleaseInstance.internalName, [ oldExpr, newExpr ], this.options.nativeSizeType); + // if ((t1=newExpr) != (t2=oldExpr)) { + // __retain(t1); + // __release(t2); + // }, t1 + var module = this.module; + var flow = this.currentFlow; + var usizeType = this.options.usizeType; + var nativeSizeType = this.options.nativeSizeType; + var temp1 = flow.getTempLocal(usizeType, oldExpr); + var temp2 = flow.getAndFreeTempLocal(usizeType); + flow.freeTempLocal(temp1); + return module.block(null, [ + module.if( + module.binary(nativeSizeType == NativeType.I64 ? BinaryOp.NeI64 : BinaryOp.NeI32, + module.local_tee(temp1.index, newExpr), + module.local_tee(temp2.index, oldExpr) + ), + module.block(null, [ + module.drop( + this.makeRetain(module.local_get(temp1.index, nativeSizeType)) + ), + this.makeRelease(module.local_get(temp2.index, nativeSizeType)) + ]) + ), + module.local_get(temp1.index, nativeSizeType) + ], nativeSizeType); } /** Makes a skippedRelease call, ignoring the new expression's value and releasing the old expression's value, in this order. */ makeSkippedRelease(oldExpr: ExpressionRef, newExpr: ExpressionRef): ExpressionRef { - // FIXME: this is a workaround, see https://github.com/WebAssembly/binaryen/issues/2135 - var skippedReleaseInstance = this.program.skippedReleaseInstance; - this.compileFunction(skippedReleaseInstance); - return this.module.call(skippedReleaseInstance.internalName, [ oldExpr, newExpr ], this.options.nativeSizeType); + // TODO: this helper can be eliminated altogether if the current logic holds + // (t1=newExpr), __release(oldExpr), t1 + var module = this.module; + var flow = this.currentFlow; + var usizeType = this.options.usizeType; + var nativeSizeType = this.options.nativeSizeType; + var temp = flow.getAndFreeTempLocal(usizeType, oldExpr); + return module.block(null, [ + module.local_set(temp.index, newExpr), + this.makeRelease(oldExpr), + module.local_get(temp.index, nativeSizeType) + ], nativeSizeType); } /** Makes a release call, releasing the expression's value. Changes the current type to void.*/ diff --git a/src/flow.ts b/src/flow.ts index ebf60b84..31d71179 100644 --- a/src/flow.ts +++ b/src/flow.ts @@ -53,7 +53,7 @@ import { getConstValueI64High, getUnaryValue, getCallOperand, - getCallOperandCount + traverse } from "./module"; import { @@ -295,8 +295,22 @@ export class Flow { return branch; } + private static findUsedLocals(expr: ExpressionRef, blocked: Set): void { + switch (getExpressionId(expr)) { + case ExpressionId.LocalGet: { + blocked.add(getGetLocalIndex(expr)); + break; + } + case ExpressionId.LocalSet: { + blocked.add(getSetLocalIndex(expr)); + break; + } + default: traverse(expr, blocked, Flow.findUsedLocals); + } + } + /** Gets a free temporary local of the specified type. */ - getTempLocal(type: Type): Local { + getTempLocal(type: Type, except: ExpressionRef = 0): Local { var parentFunction = this.parentFunction; var temps: Local[] | null; switch (type.toNativeType()) { @@ -308,20 +322,38 @@ export class Flow { default: throw new Error("concrete type expected"); } var local: Local; - if (temps && temps.length) { - local = temps.pop(); - local.type = type; - local.flags = CommonFlags.NONE; - } else { + if (except) { + let usedLocals = new Set(); + traverse(except, usedLocals, Flow.findUsedLocals); + if (temps) { + for (let i = 0, k = temps.length; i < k; ++i) { + if (!usedLocals.has(temps[i].index)) { + local = temps[i]; + let k = temps.length - 1; + while (i < k) unchecked(temps[i] = temps[i++ + 1]); + temps.length = k; + this.unsetLocalFlag(local.index, ~0); + return local; + } + } + } local = parentFunction.addLocal(type); + } else { + if (temps && temps.length) { + local = temps.pop(); + local.type = type; + local.flags = CommonFlags.NONE; + } else { + local = parentFunction.addLocal(type); + } } this.unsetLocalFlag(local.index, ~0); return local; } /** Gets a local that sticks around until this flow is exited, and then released. */ - getAutoreleaseLocal(type: Type): Local { - var local = this.getTempLocal(type); + getAutoreleaseLocal(type: Type, except: ExpressionRef = 0): Local { + var local = this.getTempLocal(type, except); local.set(CommonFlags.SCOPED); var scopedLocals = this.scopedLocals; if (!scopedLocals) this.scopedLocals = scopedLocals = new Map(); @@ -365,41 +397,9 @@ export class Flow { } /** Gets and immediately frees a temporary local of the specified type. */ - getAndFreeTempLocal(type: Type): Local { - var parentFunction = this.parentFunction; - var temps: Local[]; - switch (type.toNativeType()) { - case NativeType.I32: { - temps = parentFunction.tempI32s || (parentFunction.tempI32s = []); - break; - } - case NativeType.I64: { - temps = parentFunction.tempI64s || (parentFunction.tempI64s = []); - break; - } - case NativeType.F32: { - temps = parentFunction.tempF32s || (parentFunction.tempF32s = []); - break; - } - case NativeType.F64: { - temps = parentFunction.tempF64s || (parentFunction.tempF64s = []); - break; - } - case NativeType.V128: { - temps = parentFunction.tempV128s || (parentFunction.tempV128s = []); - break; - } - default: throw new Error("concrete type expected"); - } - var local: Local; - if (temps.length) { - local = temps[temps.length - 1]; - local.type = type; - } else { - local = parentFunction.addLocal(type); - temps.push(local); - } - this.unsetLocalFlag(local.index, ~0); + getAndFreeTempLocal(type: Type, except: ExpressionRef = 0): Local { + var local = this.getTempLocal(type, except); + this.freeTempLocal(local); return local; } @@ -729,8 +729,7 @@ export class Flow { let name = getCallTarget(expr); let program = this.parentFunction.program; switch (name) { - case program.retainInstance.internalName: - case program.retainReleaseInstance.internalName: { + case program.retainInstance.internalName: { this.inheritNonnullIfTrue(getCallOperand(expr, 0)); break; } diff --git a/src/module.ts b/src/module.ts index a842ca1f..8366b12f 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1792,43 +1792,43 @@ export function needsExplicitUnreachable(expr: ExpressionRef): bool { } /** Traverses all expression members of an expression, calling the given visitor. */ -export function traverse(expr: ExpressionRef, data: T, visit: (expr: ExpressionRef, data: T) => bool): bool { +export function traverse(expr: ExpressionRef, data: T, visit: (expr: ExpressionRef, data: T) => void): bool { switch (getExpressionId(expr)) { case ExpressionId.Block: { for (let i = 0, n = _BinaryenBlockGetNumChildren(expr); i < n; ++i) { - if (!visit(_BinaryenBlockGetChild(expr, i), data)) return false; + visit(_BinaryenBlockGetChild(expr, i), data); } break; } case ExpressionId.If: { - if (!visit(_BinaryenIfGetCondition(expr), data)) return false; - if (!visit(_BinaryenIfGetIfTrue(expr), data)) return false; + visit(_BinaryenIfGetCondition(expr), data); + visit(_BinaryenIfGetIfTrue(expr), data); let ifFalse = _BinaryenIfGetIfFalse(expr); - if (ifFalse) if (!visit(ifFalse, data)) return false; + if (ifFalse) visit(ifFalse, data); break; } case ExpressionId.Loop: { - if (!visit(_BinaryenLoopGetBody(expr), data)) return false; + visit(_BinaryenLoopGetBody(expr), data); break; } case ExpressionId.Break: { let condition = _BinaryenBreakGetCondition(expr); - if (condition) if (!visit(condition, data)) return false; + if (condition) visit(condition, data); break; } case ExpressionId.Switch: { - if (!visit(_BinaryenSwitchGetCondition(expr), data)) return false; + visit(_BinaryenSwitchGetCondition(expr), data); break; } case ExpressionId.Call: { for (let i = 0, n = _BinaryenCallGetNumOperands(expr); i < n; ++i) { - if (!visit(_BinaryenCallGetOperand(expr, i), data)) return false; + visit(_BinaryenCallGetOperand(expr, i), data); } break; } case ExpressionId.CallIndirect: { for (let i = 0, n = _BinaryenCallIndirectGetNumOperands(expr); i < n; ++i) { - if (!visit(_BinaryenCallIndirectGetOperand(expr, i), data)) return false; + visit(_BinaryenCallIndirectGetOperand(expr, i), data); } break; } @@ -1836,121 +1836,121 @@ export function traverse(expr: ExpressionRef, data: T, visit: (expr: Expressi break; } case ExpressionId.LocalSet: { - if (!visit(_BinaryenLocalSetGetValue(expr), data)) return false; + visit(_BinaryenLocalSetGetValue(expr), data); break; } case ExpressionId.GlobalGet: { break; } case ExpressionId.GlobalSet: { - if (!visit(_BinaryenGlobalSetGetValue(expr), data)) return false; + visit(_BinaryenGlobalSetGetValue(expr), data); break; } case ExpressionId.Load: { - if (!visit(_BinaryenLoadGetPtr(expr), data)) return false; + visit(_BinaryenLoadGetPtr(expr), data); break; } case ExpressionId.Store: { - if (!visit(_BinaryenStoreGetPtr(expr), data)) return false; - if (!visit(_BinaryenStoreGetValue(expr), data)) return false; + visit(_BinaryenStoreGetPtr(expr), data); + visit(_BinaryenStoreGetValue(expr), data); break; } case ExpressionId.AtomicRMW: { - if (!visit(_BinaryenAtomicRMWGetPtr(expr), data)) return false; - if (!visit(_BinaryenAtomicRMWGetValue(expr), data)) return false; + visit(_BinaryenAtomicRMWGetPtr(expr), data); + visit(_BinaryenAtomicRMWGetValue(expr), data); break; } case ExpressionId.AtomicCmpxchg: { - if (!visit(_BinaryenAtomicCmpxchgGetPtr(expr), data)) return false; - if (!visit(_BinaryenAtomicCmpxchgGetExpected(expr), data)) return false; - if (!visit(_BinaryenAtomicCmpxchgGetReplacement(expr), data)) return false; + visit(_BinaryenAtomicCmpxchgGetPtr(expr), data); + visit(_BinaryenAtomicCmpxchgGetExpected(expr), data); + visit(_BinaryenAtomicCmpxchgGetReplacement(expr), data); break; } case ExpressionId.AtomicWait: { - if (!visit(_BinaryenAtomicWaitGetPtr(expr), data)) return false; - if (!visit(_BinaryenAtomicWaitGetExpected(expr), data)) return false; - if (!visit(_BinaryenAtomicWaitGetTimeout(expr), data)) return false; + visit(_BinaryenAtomicWaitGetPtr(expr), data); + visit(_BinaryenAtomicWaitGetExpected(expr), data); + visit(_BinaryenAtomicWaitGetTimeout(expr), data); break; } case ExpressionId.AtomicNotify: { - if (!visit(_BinaryenAtomicNotifyGetPtr(expr), data)) return false; + visit(_BinaryenAtomicNotifyGetPtr(expr), data); break; } case ExpressionId.SIMDExtract: { - if (!visit(_BinaryenSIMDExtractGetVec(expr), data)) return false; + visit(_BinaryenSIMDExtractGetVec(expr), data); break; } case ExpressionId.SIMDReplace: { - if (!visit(_BinaryenSIMDReplaceGetVec(expr), data)) return false; - if (!visit(_BinaryenSIMDReplaceGetValue(expr), data)) return false; + visit(_BinaryenSIMDReplaceGetVec(expr), data); + visit(_BinaryenSIMDReplaceGetValue(expr), data); break; } case ExpressionId.SIMDShuffle: { - if (!visit(_BinaryenSIMDShuffleGetLeft(expr), data)) return false; - if (!visit(_BinaryenSIMDShuffleGetRight(expr), data)) return false; + visit(_BinaryenSIMDShuffleGetLeft(expr), data); + visit(_BinaryenSIMDShuffleGetRight(expr), data); break; } case ExpressionId.SIMDBitselect: { - if (!visit(_BinaryenSIMDBitselectGetLeft(expr), data)) return false; - if (!visit(_BinaryenSIMDBitselectGetRight(expr), data)) return false; - if (!visit(_BinaryenSIMDBitselectGetCond(expr), data)) return false; + visit(_BinaryenSIMDBitselectGetLeft(expr), data); + visit(_BinaryenSIMDBitselectGetRight(expr), data); + visit(_BinaryenSIMDBitselectGetCond(expr), data); break; } case ExpressionId.SIMDShift: { - if (!visit(_BinaryenSIMDShiftGetVec(expr), data)) return false; - if (!visit(_BinaryenSIMDShiftGetShift(expr), data)) return false; + visit(_BinaryenSIMDShiftGetVec(expr), data); + visit(_BinaryenSIMDShiftGetShift(expr), data); break; } case ExpressionId.MemoryInit: { - if (!visit(_BinaryenMemoryInitGetDest(expr), data)) return false; - if (!visit(_BinaryenMemoryInitGetOffset(expr), data)) return false; - if (!visit(_BinaryenMemoryInitGetSize(expr), data)) return false; + visit(_BinaryenMemoryInitGetDest(expr), data); + visit(_BinaryenMemoryInitGetOffset(expr), data); + visit(_BinaryenMemoryInitGetSize(expr), data); break; } case ExpressionId.DataDrop: { break; } case ExpressionId.MemoryCopy: { - if (!visit(_BinaryenMemoryCopyGetDest(expr), data)) return false; - if (!visit(_BinaryenMemoryCopyGetSource(expr), data)) return false; - if (!visit(_BinaryenMemoryCopyGetSize(expr), data)) return false; + visit(_BinaryenMemoryCopyGetDest(expr), data); + visit(_BinaryenMemoryCopyGetSource(expr), data); + visit(_BinaryenMemoryCopyGetSize(expr), data); break; } case ExpressionId.MemoryFill: { - if (!visit(_BinaryenMemoryFillGetDest(expr), data)) return false; - if (!visit(_BinaryenMemoryFillGetValue(expr), data)) return false; - if (!visit(_BinaryenMemoryFillGetSize(expr), data)) return false; + visit(_BinaryenMemoryFillGetDest(expr), data); + visit(_BinaryenMemoryFillGetValue(expr), data); + visit(_BinaryenMemoryFillGetSize(expr), data); break; } case ExpressionId.Const: { break; } case ExpressionId.Unary: { - if (!visit(_BinaryenUnaryGetValue(expr), data)) return false; + visit(_BinaryenUnaryGetValue(expr), data); break; } case ExpressionId.Binary: { - if (!visit(_BinaryenBinaryGetLeft(expr), data)) return false; - if (!visit(_BinaryenBinaryGetRight(expr), data)) return false; + visit(_BinaryenBinaryGetLeft(expr), data); + visit(_BinaryenBinaryGetRight(expr), data); break; } case ExpressionId.Select: { - if (!visit(_BinaryenSelectGetIfTrue(expr), data)) return false; - if (!visit(_BinaryenSelectGetIfFalse(expr), data)) return false; - if (!visit(_BinaryenSelectGetCondition(expr), data)) return false; + visit(_BinaryenSelectGetIfTrue(expr), data); + visit(_BinaryenSelectGetIfFalse(expr), data); + visit(_BinaryenSelectGetCondition(expr), data); break; } case ExpressionId.Drop: { - if (!visit(_BinaryenDropGetValue(expr), data)) return false; + visit(_BinaryenDropGetValue(expr), data); break; } case ExpressionId.Return: { - if (!visit(_BinaryenReturnGetValue(expr), data)) return false; + visit(_BinaryenReturnGetValue(expr), data); break; } case ExpressionId.Host: { for (let i = 0, n = _BinaryenHostGetNumOperands(expr); i < n; ++i) { - if (!visit(_BinaryenHostGetOperand(expr, i), data)) return false; + visit(_BinaryenHostGetOperand(expr, i), data); } break; } diff --git a/src/program.ts b/src/program.ts index 3269b448..cd8d54dc 100644 --- a/src/program.ts +++ b/src/program.ts @@ -395,10 +395,6 @@ export class Program extends DiagnosticEmitter { retainInstance: Function; /** RT `__release(ref: usize): void` */ releaseInstance: Function; - /** RT `__retainRelease(newRef: usize, oldRef: usize): usize` */ - retainReleaseInstance: Function; - /** RT `__skippedRelease(newRef: usize, oldRef: usize): usize` */ - skippedReleaseInstance: Function; /** RT `__collect(): void` */ collectInstance: Function; /** RT `__visit(ref: usize, cookie: u32): void` */ @@ -860,8 +856,6 @@ export class Program extends DiagnosticEmitter { this.freeInstance = this.requireFunction(CommonSymbols.free); this.retainInstance = this.requireFunction(CommonSymbols.retain); this.releaseInstance = this.requireFunction(CommonSymbols.release); - this.retainReleaseInstance = this.requireFunction(CommonSymbols.retainRelease); - this.skippedReleaseInstance = this.requireFunction(CommonSymbols.skippedRelease); this.collectInstance = this.requireFunction(CommonSymbols.collect); this.typeinfoInstance = this.requireFunction(CommonSymbols.typeinfo); this.instanceofInstance = this.requireFunction(CommonSymbols.instanceof_); diff --git a/std/assembly/array.ts b/std/assembly/array.ts index 4f605bdb..c2b84fe4 100644 --- a/std/assembly/array.ts +++ b/std/assembly/array.ts @@ -120,7 +120,11 @@ export class Array extends ArrayBufferView { @operator("{}=") private __unchecked_set(index: i32, value: T): void { if (isManaged()) { let offset = this.dataStart + (index << alignof()); - store(offset, __retainRelease(load(offset), changetype(value))); + let oldRef: usize = load(offset); + if (changetype(value) != oldRef) { + store(offset, __retain(changetype(value))); + __release(oldRef); + } } else { store(this.dataStart + (index << alignof()), value); } @@ -182,7 +186,11 @@ export class Array extends ArrayBufferView { ensureSize(changetype(this), newLength, alignof()); if (isManaged()) { let offset = this.dataStart + (length << alignof()); - store(offset, __retainRelease(load(offset), changetype(value))); + let oldRef: usize = load(offset); + if (changetype(value) != oldRef) { + store(offset, __retain(changetype(value))); + __release(oldRef); + } } else { store(this.dataStart + (length << alignof()), value); } diff --git a/std/assembly/map.ts b/std/assembly/map.ts index 41594773..3aa152c9 100644 --- a/std/assembly/map.ts +++ b/std/assembly/map.ts @@ -105,9 +105,15 @@ export class Map { var hashCode = HASH(key); var entry = this.find(key, hashCode); // unmanaged! if (entry) { - entry.value = isManaged() - ? changetype(__retainRelease(changetype(entry.value), changetype(value))) - : value; + if (isManaged()) { + let oldRef = changetype(entry.value); + if (changetype(value) != oldRef) { + entry.value = changetype(__retain(changetype(value))); + __release(oldRef); + } + } else { + entry.value = value; + } } else { // check if rehashing is necessary if (this.entriesOffset == this.entriesCapacity) { diff --git a/std/assembly/rt.ts b/std/assembly/rt.ts index 400583fc..8eb2d788 100644 --- a/std/assembly/rt.ts +++ b/std/assembly/rt.ts @@ -66,14 +66,6 @@ export function __allocArray(length: i32, alignLog2: usize, id: u32, data: usize // @builtin @unsafe // export declare function __retain(ref: usize): usize; -// // @ts-ignore: decorator -// @builtin @unsafe -// export declare function __retainRelease(oldRef: usize, newRef: usize): usize; - -// // @ts-ignore: decorator -// @builtin @unsafe -// export declare function __skippedRelease(oldRef: usize, newRef: usize): usize; - // // @ts-ignore: decorator // @builtin @unsafe // export declare function __release(ref: usize): void; diff --git a/std/assembly/rt/README.md b/std/assembly/rt/README.md index 3b15fd7e..67c6a5b4 100644 --- a/std/assembly/rt/README.md +++ b/std/assembly/rt/README.md @@ -27,12 +27,6 @@ Interface ### Internals -* **__retainRelease**(oldRef: `usize`, newRef: `usize`): `usize`
- Retains a reference to a new object type while releasing the reference it replaces. Returns the retained reference. This is a workaround. - -* **__skippedRelease**(oldRef: `usize`, newRef: `usize`): `usize`
- Ignores a reference to a new object type while releasing the reference it replaces. Returns the ignored reference. This is a workaround. - * **__visit**(ref: `usize`, cookie: `u32`): `void`
Concrete visitor implementation called during traversal. Cookie can be used to indicate one of multiple operations. diff --git a/std/assembly/rt/index.d.ts b/std/assembly/rt/index.d.ts index f17286d9..e1029609 100644 --- a/std/assembly/rt/index.d.ts +++ b/std/assembly/rt/index.d.ts @@ -3,8 +3,6 @@ declare function __realloc(ref: usize, size: usize): usize; declare function __free(ref: usize): void; declare function __retain(ref: usize): void; declare function __release(ref: usize): void; -declare function __retainRelease(oldRef: usize, newRef: usize): usize; -declare function __skippedRelease(oldRef: usize, newRef: usize): usize; declare function __collect(): void; declare function __typeinfo(id: u32): u32; declare function __instanceof(ref: usize, superId: u32): bool; diff --git a/std/assembly/rt/pure.ts b/std/assembly/rt/pure.ts index 71c73d47..3ffd5136 100644 --- a/std/assembly/rt/pure.ts +++ b/std/assembly/rt/pure.ts @@ -255,21 +255,3 @@ export function __retain(ref: usize): usize { export function __release(ref: usize): void { if (ref > HEAP_BASE) decrement(changetype(ref - BLOCK_OVERHEAD)); } - -// @ts-ignore: decorator -@global @unsafe -export function __retainRelease(oldRef: usize, newRef: usize): usize { - if (newRef != oldRef) { - let heapBase = HEAP_BASE; - if (newRef > heapBase) increment(changetype(newRef - BLOCK_OVERHEAD)); - if (oldRef > heapBase) decrement(changetype(oldRef - BLOCK_OVERHEAD)); - } - return newRef; -} - -// @ts-ignore: decorator -@global @unsafe -export function __skippedRelease(oldRef: usize, newRef: usize): usize { - if (oldRef > HEAP_BASE) decrement(changetype(oldRef - BLOCK_OVERHEAD)); - return newRef; -} diff --git a/std/assembly/rt/stub.ts b/std/assembly/rt/stub.ts index 77543c2b..510ab13a 100644 --- a/std/assembly/rt/stub.ts +++ b/std/assembly/rt/stub.ts @@ -71,18 +71,6 @@ export function __release(ref: usize): void { export function __visit(ref: usize, cookie: u32): void { } -// @ts-ignore: decorator -@global @unsafe -export function __retainRelease(oldRef: usize, newRef: usize): usize { - return newRef; -} - -// @ts-ignore: decorator -@global @unsafe -export function __skippedRelease(oldRef: usize, newRef: usize): usize { - return newRef; -} - // @ts-ignore: decorator @global @unsafe export function __collect(): void { diff --git a/tests/compiler/instanceof.untouched.wat b/tests/compiler/instanceof.untouched.wat index aba9a8f7..89144264 100644 --- a/tests/compiler/instanceof.untouched.wat +++ b/tests/compiler/instanceof.untouched.wat @@ -2,7 +2,7 @@ (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$id (func (param f64) (result i32))) - (type $FUNCSIG$iii (func (param i32 i32) (result i32))) + (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$v (func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) @@ -82,10 +82,15 @@ unreachable unreachable ) - (func $~lib/rt/stub/__retainRelease (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 + (func $~lib/rt/stub/__retain (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 ) - (func $start:instanceof (; 6 ;) (type $FUNCSIG$v) + (func $~lib/rt/stub/__release (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) + nop + ) + (func $start:instanceof (; 7 ;) (type $FUNCSIG$v) + (local $0 i32) + (local $1 i32) block (result i32) global.get $instanceof/a drop @@ -678,9 +683,21 @@ call $~lib/builtins/abort unreachable end - global.get $instanceof/an - i32.const 1 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 1 + local.tee $0 + global.get $instanceof/an + local.tee $1 + i32.ne + if + local.get $0 + call $~lib/rt/stub/__retain + drop + local.get $1 + call $~lib/rt/stub/__release + end + local.get $0 + end global.set $instanceof/an global.get $instanceof/an i32.const 0 @@ -709,9 +726,9 @@ unreachable end ) - (func $start (; 7 ;) (type $FUNCSIG$v) + (func $start (; 8 ;) (type $FUNCSIG$v) call $start:instanceof ) - (func $null (; 8 ;) (type $FUNCSIG$v) + (func $null (; 9 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/possibly-null.untouched.wat b/tests/compiler/possibly-null.untouched.wat index c7ef294d..f597c77f 100644 --- a/tests/compiler/possibly-null.untouched.wat +++ b/tests/compiler/possibly-null.untouched.wat @@ -1,7 +1,6 @@ (module (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) - (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$v (func)) (memory $0 0) @@ -166,10 +165,9 @@ local.get $0 call $~lib/rt/stub/__release ) - (func $~lib/rt/stub/__retainRelease (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - ) - (func $possibly-null/testWhile (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $possibly-null/testWhile (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 call $~lib/rt/stub/__retain drop @@ -177,9 +175,21 @@ loop $continue|0 local.get $0 if - local.get $0 - i32.const 0 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 0 + local.tee $1 + local.get $0 + local.tee $2 + i32.ne + if + local.get $1 + call $~lib/rt/stub/__retain + drop + local.get $2 + call $~lib/rt/stub/__release + end + local.get $1 + end local.set $0 br $continue|0 end @@ -188,7 +198,9 @@ local.get $0 call $~lib/rt/stub/__release ) - (func $possibly-null/testWhile2 (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $possibly-null/testWhile2 (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) local.get $0 call $~lib/rt/stub/__retain drop @@ -199,9 +211,21 @@ loop $continue|0 local.get $0 if - local.get $0 - local.get $1 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $1 + local.tee $2 + local.get $0 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $2 + end local.set $0 br $continue|0 end @@ -212,7 +236,9 @@ local.get $1 call $~lib/rt/stub/__release ) - (func $possibly-null/testWhile3 (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $possibly-null/testWhile3 (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) local.get $0 call $~lib/rt/stub/__retain drop @@ -225,9 +251,21 @@ if local.get $1 if - local.get $0 - local.get $1 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $1 + local.tee $2 + local.get $0 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $2 + end local.set $0 end br $continue|0 @@ -239,13 +277,13 @@ local.get $1 call $~lib/rt/stub/__release ) - (func $possibly-null/requireNonNull (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $possibly-null/requireNonNull (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/rt/stub/__retain drop local.get $0 ) - (func $possibly-null/testLogicalAnd (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $possibly-null/testLogicalAnd (; 15 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -267,7 +305,7 @@ local.get $0 call $~lib/rt/stub/__release ) - (func $possibly-null/testLogicalOr (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $possibly-null/testLogicalOr (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -292,7 +330,7 @@ local.get $0 call $~lib/rt/stub/__release ) - (func $possibly-null/testLogicalAndMulti (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $possibly-null/testLogicalAndMulti (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/stub/__retain drop @@ -315,7 +353,7 @@ local.get $1 call $~lib/rt/stub/__release ) - (func $possibly-null/testLogicalOrMulti (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $possibly-null/testLogicalOrMulti (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 call $~lib/rt/stub/__retain drop @@ -340,23 +378,37 @@ local.get $1 call $~lib/rt/stub/__release ) - (func $possibly-null/testAssign (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $possibly-null/testAssign (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) local.get $0 call $~lib/rt/stub/__retain drop local.get $1 call $~lib/rt/stub/__retain drop - local.get $0 - local.get $1 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $1 + local.tee $2 + local.get $0 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $2 + end local.set $0 local.get $0 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release ) - (func $possibly-null/testNeverNull (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $possibly-null/testNeverNull (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/rt/stub/__retain drop @@ -368,6 +420,6 @@ local.get $0 call $~lib/rt/stub/__release ) - (func $null (; 22 ;) (type $FUNCSIG$v) + (func $null (; 21 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/rc/global-init.optimized.wat b/tests/compiler/rc/global-init.optimized.wat index ebc6ed25..91b22031 100644 --- a/tests/compiler/rc/global-init.optimized.wat +++ b/tests/compiler/rc/global-init.optimized.wat @@ -2,11 +2,12 @@ (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) - (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$v (func)) + (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) @@ -26,7 +27,60 @@ (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) (export "memory" (memory $0)) (start $start) - (func $~lib/rt/tlsf/removeBlock (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/increment (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -268435456 + i32.and + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.ne + if + i32.const 0 + i32.const 40 + i32.const 104 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + local.get $0 + call $~lib/rt/rtrace/onincrement + local.get $0 + i32.load + i32.const 1 + i32.and + if + i32.const 0 + i32.const 40 + i32.const 107 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/pure/__retain (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + i32.const 300 + i32.gt_u + if + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/increment + end + local.get $0 + ) + (func $~lib/rt/tlsf/removeBlock (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -192,7 +246,7 @@ end end ) - (func $~lib/rt/tlsf/insertBlock (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/insertBlock (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -477,7 +531,7 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/freeBlock (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $1 i32.load @@ -503,7 +557,7 @@ local.get $1 call $~lib/rt/rtrace/onfree ) - (func $~lib/rt/__typeinfo (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/rt/__typeinfo (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 272 i32.load @@ -523,7 +577,7 @@ i32.add i32.load ) - (func $~lib/rt/tlsf/addMemory (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/addMemory (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -637,7 +691,7 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initializeRoot (; 9 ;) (type $FUNCSIG$v) + (func $~lib/rt/tlsf/initializeRoot (; 12 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 1 @@ -720,7 +774,7 @@ i32.const 304 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/prepareSize (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/prepareSize (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1073741808 i32.ge_u @@ -744,7 +798,7 @@ i32.gt_u select ) - (func $~lib/rt/tlsf/searchBlock (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 i32.const 256 @@ -875,7 +929,7 @@ end end ) - (func $~lib/rt/tlsf/growMemory (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) memory.size local.tee $2 @@ -912,7 +966,7 @@ i32.shl call $~lib/rt/tlsf/addMemory ) - (func $~lib/rt/tlsf/prepareBlock (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $1 @@ -988,7 +1042,7 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/allocateBlock (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -1047,7 +1101,7 @@ call $~lib/rt/rtrace/onalloc local.get $2 ) - (func $~lib/rt/tlsf/__alloc (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) global.get $~lib/rt/tlsf/ROOT local.tee $1 @@ -1067,7 +1121,7 @@ i32.const 16 i32.add ) - (func $~lib/memory/memory.copy (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 19 ;) (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 @@ -1240,7 +1294,7 @@ end end ) - (func $~lib/rt/pure/growRoots (; 17 ;) (type $FUNCSIG$v) + (func $~lib/rt/pure/growRoots (; 20 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -1275,7 +1329,7 @@ i32.add global.set $~lib/rt/pure/END ) - (func $~lib/rt/pure/appendRoot (; 18 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/appendRoot (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) global.get $~lib/rt/pure/CUR local.tee $1 @@ -1294,7 +1348,7 @@ i32.add global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/decrement (; 19 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/decrement (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -1384,34 +1438,52 @@ end end ) - (func $~lib/rt/pure/__retainRelease (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/rt/pure/__release (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 + i32.const 300 + i32.gt_u if local.get $0 - i32.const 300 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement end - i32.const 0 ) - (func $start (; 21 ;) (type $FUNCSIG$v) + (func $start:rc/global-init (; 24 ;) (type $FUNCSIG$v) + (local $0 i32) i32.const 24 + call $~lib/rt/pure/__retain global.set $rc/global-init/a i32.const 24 + call $~lib/rt/pure/__retain global.set $rc/global-init/b global.get $rc/global-init/a - call $~lib/rt/pure/__retainRelease + local.tee $0 + if + i32.const 0 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/rt/pure/__release + end + i32.const 0 global.set $rc/global-init/a global.get $rc/global-init/b - call $~lib/rt/pure/__retainRelease + local.tee $0 + if + i32.const 0 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/rt/pure/__release + end + i32.const 0 global.set $rc/global-init/b ) - (func $~lib/rt/pure/markGray (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $start (; 25 ;) (type $FUNCSIG$v) + call $start:rc/global-init + ) + (func $~lib/rt/pure/markGray (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1435,7 +1507,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -1448,7 +1520,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1482,7 +1554,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1510,7 +1582,7 @@ local.get $0 call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/pure/__visit (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 300 i32.lt_u @@ -1620,7 +1692,7 @@ unreachable end ) - (func $~lib/rt/__visit_members (; 27 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $switch$1$default block $switch$1$case$4 block $switch$1$case$2 @@ -1644,7 +1716,7 @@ end unreachable ) - (func $null (; 28 ;) (type $FUNCSIG$v) + (func $null (; 32 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/rc/global-init.untouched.wat b/tests/compiler/rc/global-init.untouched.wat index e01ae19a..6dd4de31 100644 --- a/tests/compiler/rc/global-init.untouched.wat +++ b/tests/compiler/rc/global-init.untouched.wat @@ -3,9 +3,9 @@ (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) - (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$vii (func (param i32 i32))) (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$viii (func (param i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -3087,47 +3087,55 @@ end end ) - (func $~lib/rt/pure/__retainRelease (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 + (func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 - i32.ne + global.get $~lib/heap/HEAP_BASE + i32.gt_u if - global.get $~lib/heap/HEAP_BASE - local.set $2 - local.get $1 - local.get $2 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end local.get $0 - local.get $2 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement end - local.get $1 ) (func $start:rc/global-init (; 26 ;) (type $FUNCSIG$v) + (local $0 i32) + (local $1 i32) call $rc/global-init/getRef global.set $rc/global-init/a call $rc/global-init/getRef global.set $rc/global-init/b - global.get $rc/global-init/a - i32.const 0 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 0 + local.tee $0 + global.get $rc/global-init/a + local.tee $1 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + end global.set $rc/global-init/a - global.get $rc/global-init/b - i32.const 0 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 0 + local.tee $1 + global.get $rc/global-init/b + local.tee $0 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/rt/pure/__release + end + local.get $1 + end global.set $rc/global-init/b ) (func $start (; 27 ;) (type $FUNCSIG$v) diff --git a/tests/compiler/retain-release-sanity.optimized.wat b/tests/compiler/retain-release-sanity.optimized.wat index 39295c5a..488dd40f 100644 --- a/tests/compiler/retain-release-sanity.optimized.wat +++ b/tests/compiler/retain-release-sanity.optimized.wat @@ -1447,34 +1447,20 @@ end end ) - (func $~lib/rt/pure/__retainRelease (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/pure/__release (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 - local.get $1 - i32.ne + i32.const 724 + i32.gt_u if - local.get $1 - i32.const 724 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end local.get $0 - i32.const 724 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement end - local.get $1 ) (func $~lib/arraybuffer/ArrayBufferView#constructor (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) local.get $1 i32.const 268435452 i32.gt_u @@ -1511,11 +1497,20 @@ local.get $0 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 local.get $0 i32.load + local.tee $3 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $0 local.get $1 - call $~lib/rt/pure/__retainRelease i32.store local.get $0 local.get $1 @@ -1974,7 +1969,7 @@ if i32.const 424 i32.const 376 - i32.const 250 + i32.const 258 i32.const 20 call $~lib/builtins/abort unreachable @@ -1994,20 +1989,10 @@ local.get $1 i32.store offset=12 ) - (func $~lib/rt/pure/__release (; 31 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - i32.const 724 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - ) - (func $~lib/array/Array<~lib/string/String>#push (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array<~lib/string/String>#push (; 31 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) i32.const 584 call $~lib/rt/pure/__retain drop @@ -2026,18 +2011,25 @@ i32.shl i32.add local.tee $1 - local.get $1 i32.load + local.tee $3 i32.const 584 - call $~lib/rt/pure/__retainRelease - i32.store + i32.ne + if + local.get $1 + i32.const 584 + call $~lib/rt/pure/__retain + i32.store + local.get $3 + call $~lib/rt/pure/__release + end local.get $0 local.get $2 i32.store offset=12 i32.const 584 call $~lib/rt/pure/__release ) - (func $~lib/string/String#get:length (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -2045,7 +2037,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/string/String#concat (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2057,7 +2049,15 @@ if local.get $1 i32.const 648 - call $~lib/rt/pure/__retainRelease + i32.ne + if + i32.const 648 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + i32.const 648 local.set $1 end local.get $0 @@ -2100,7 +2100,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -2121,7 +2121,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/rt/pure/markGray (; 36 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 35 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -2145,7 +2145,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 37 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 36 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -2158,7 +2158,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 37 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -2192,7 +2192,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -2220,7 +2220,7 @@ local.get $0 call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/pure/__collect (; 40 ;) (type $FUNCSIG$v) + (func $~lib/rt/pure/__collect (; 39 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -2344,7 +2344,7 @@ local.get $5 global.set $~lib/rt/pure/CUR ) - (func $start:retain-release-sanity (; 41 ;) (type $FUNCSIG$v) + (func $start:retain-release-sanity (; 40 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -2432,7 +2432,7 @@ call $~lib/rt/pure/__release call $~lib/rt/pure/__collect ) - (func $retain-release-sanity/main (; 42 ;) (type $FUNCSIG$v) + (func $retain-release-sanity/main (; 41 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -2441,7 +2441,7 @@ global.set $~lib/started end ) - (func $~lib/rt/pure/__visit (; 43 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 42 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 724 i32.lt_u @@ -2551,7 +2551,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 43 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2582,7 +2582,7 @@ end end ) - (func $~lib/rt/__visit_members (; 45 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$6 @@ -2611,7 +2611,7 @@ call $~lib/rt/pure/__visit end ) - (func $null (; 46 ;) (type $FUNCSIG$v) + (func $null (; 45 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/retain-release-sanity.untouched.wat b/tests/compiler/retain-release-sanity.untouched.wat index 205af451..e981d1d8 100644 --- a/tests/compiler/retain-release-sanity.untouched.wat +++ b/tests/compiler/retain-release-sanity.untouched.wat @@ -3090,38 +3090,21 @@ end end ) - (func $~lib/rt/pure/__retainRelease (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 + (func $~lib/rt/pure/__release (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 - i32.ne + global.get $~lib/heap/HEAP_BASE + i32.gt_u if - global.get $~lib/heap/HEAP_BASE - local.set $2 - local.get $1 - local.get $2 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end local.get $0 - local.get $2 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement end - local.get $1 ) (func $~lib/arraybuffer/ArrayBufferView#constructor (; 25 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 i32.const 1073741808 local.get $2 @@ -3164,10 +3147,22 @@ local.get $0 end local.tee $4 - local.get $4 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release + end + local.get $5 + end i32.store local.get $0 local.get $3 @@ -3739,7 +3734,7 @@ if i32.const 424 i32.const 376 - i32.const 250 + i32.const 258 i32.const 20 call $~lib/builtins/abort unreachable @@ -3760,18 +3755,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/rt/pure/__release (; 33 ;) (type $FUNCSIG$vi) (param $0 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/pure/decrement - end - ) - (func $~lib/array/Array<~lib/string/String>#constructor (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#constructor (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -3810,10 +3794,11 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array<~lib/string/String>#push (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#push (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -3836,21 +3821,29 @@ i32.add local.set $4 local.get $4 - local.get $4 i32.load + local.set $5 local.get $1 - call $~lib/rt/pure/__retainRelease - i32.store + local.get $5 + i32.ne + if + local.get $4 + local.get $1 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + call $~lib/rt/pure/__release + end local.get $0 local.get $3 i32.store offset=12 local.get $3 - local.set $4 + local.set $5 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $5 ) - (func $~lib/string/String#get:length (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -3858,12 +3851,13 @@ i32.const 1 i32.shr_u ) - (func $~lib/string/String#concat (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -3871,59 +3865,71 @@ i32.const 0 i32.eq if - local.get $1 - i32.const 648 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 648 + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $2 + end local.set $1 end local.get $0 call $~lib/string/String#get:length i32.const 1 i32.shl - local.set $2 + local.set $4 local.get $1 call $~lib/string/String#get:length i32.const 1 i32.shl - local.set $3 - local.get $2 - local.get $3 - i32.add - local.set $4 + local.set $5 local.get $4 + local.get $5 + i32.add + local.set $6 + local.get $6 i32.const 0 i32.eq if i32.const 584 call $~lib/rt/pure/__retain - local.set $5 + local.set $2 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $2 return end - local.get $4 + local.get $6 i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $6 - local.get $6 + local.set $7 + local.get $7 local.get $0 - local.get $2 + local.get $4 call $~lib/memory/memory.copy - local.get $6 - local.get $2 + local.get $7 + local.get $4 i32.add local.get $1 - local.get $3 + local.get $5 call $~lib/memory/memory.copy - local.get $6 - local.set $5 + local.get $7 + local.set $2 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $2 ) - (func $~lib/string/String.__concat (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3946,7 +3952,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/rt/pure/markGray (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -3973,7 +3979,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 40 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -3990,7 +3996,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 41 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 40 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -4027,7 +4033,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 42 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 41 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -4056,7 +4062,7 @@ local.get $0 call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/pure/__collect (; 43 ;) (type $FUNCSIG$v) + (func $~lib/rt/pure/__collect (; 42 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -4204,7 +4210,7 @@ local.get $0 global.set $~lib/rt/pure/CUR ) - (func $start:retain-release-sanity (; 44 ;) (type $FUNCSIG$v) + (func $start:retain-release-sanity (; 43 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -4300,7 +4306,7 @@ end call $~lib/rt/pure/__collect ) - (func $retain-release-sanity/main (; 45 ;) (type $FUNCSIG$v) + (func $retain-release-sanity/main (; 44 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -4309,13 +4315,13 @@ global.set $~lib/started end ) - (func $start (; 46 ;) (type $FUNCSIG$v) + (func $start (; 45 ;) (type $FUNCSIG$v) call $start:retain-release-sanity ) - (func $~lib/array/Array#__visit_impl (; 47 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 46 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/__visit (; 48 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 47 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4469,7 +4475,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 49 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 48 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4505,7 +4511,7 @@ end end ) - (func $~lib/rt/__visit_members (; 50 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 49 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block @@ -4601,6 +4607,6 @@ end unreachable ) - (func $null (; 51 ;) (type $FUNCSIG$v) + (func $null (; 50 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/retain-release.optimized.wat b/tests/compiler/retain-release.optimized.wat index b759d692..49aafa76 100644 --- a/tests/compiler/retain-release.optimized.wat +++ b/tests/compiler/retain-release.optimized.wat @@ -32,7 +32,7 @@ (export "scopeBlock" (func $retain-release/receiveRef)) (export "scopeBlockToUninitialized" (func $retain-release/receiveRef)) (export "scopeBlockToInitialized" (func $retain-release/receiveRef)) - (export "scopeBlockToConditional" (func $retain-release/takeRef)) + (export "scopeBlockToConditional" (func $retain-release/scopeBlockToConditional)) (export "scopeTopLevelUninitialized" (func $retain-release/receiveRef)) (export "scopeTopLevelInitialized" (func $retain-release/receiveRef)) (export "scopeTopLevelConditional" (func $retain-release/takeRef)) @@ -149,20 +149,31 @@ drop ) (func $retain-release/assignGlobal (; 8 ;) (type $FUNCSIG$v) + (local $0 i32) global.get $retain-release/REF + local.set $0 + local.get $0 global.set $retain-release/glo ) (func $retain-release/assignField (; 9 ;) (type $FUNCSIG$v) (local $0 i32) - global.get $retain-release/TARGET - local.tee $0 - i32.load - drop - local.get $0 + (local $1 i32) global.get $retain-release/REF + local.tee $0 + global.get $retain-release/TARGET + local.tee $1 + i32.load + i32.ne + drop + local.get $1 + local.get $0 i32.store ) - (func $retain-release/scopeThrow (; 10 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeBlockToConditional (; 10 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + nop + ) + (func $retain-release/scopeThrow (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 if i32.const 24 @@ -173,27 +184,27 @@ unreachable end ) - (func $retain-release/scopeUnreachable (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeUnreachable (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 if unreachable end ) - (func $retain-release/provideRefIndirect (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/provideRefIndirect (; 13 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 1 global.set $~lib/argc global.get $retain-release/REF local.get $0 call_indirect (type $FUNCSIG$vi) ) - (func $retain-release/receiveRefIndirect (; 13 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/receiveRefIndirect (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 0 global.set $~lib/argc local.get $0 call_indirect (type $FUNCSIG$i) drop ) - (func $start (; 14 ;) (type $FUNCSIG$v) + (func $start (; 15 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 96 global.set $~lib/rt/stub/startOffset diff --git a/tests/compiler/retain-release.untouched.wat b/tests/compiler/retain-release.untouched.wat index 66217d18..cd08b479 100644 --- a/tests/compiler/retain-release.untouched.wat +++ b/tests/compiler/retain-release.untouched.wat @@ -253,26 +253,50 @@ call $retain-release/Ref#constructor call $~lib/rt/stub/__release ) - (func $~lib/rt/stub/__retainRelease (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - ) - (func $retain-release/assignGlobal (; 17 ;) (type $FUNCSIG$v) - global.get $retain-release/glo - global.get $retain-release/REF - call $~lib/rt/stub/__retainRelease + (func $retain-release/assignGlobal (; 16 ;) (type $FUNCSIG$v) + (local $0 i32) + (local $1 i32) + block (result i32) + global.get $retain-release/REF + local.tee $0 + global.get $retain-release/glo + local.tee $1 + i32.ne + if + local.get $0 + call $~lib/rt/stub/__retain + drop + local.get $1 + call $~lib/rt/stub/__release + end + local.get $0 + end global.set $retain-release/glo ) - (func $retain-release/assignField (; 18 ;) (type $FUNCSIG$v) + (func $retain-release/assignField (; 17 ;) (type $FUNCSIG$v) (local $0 i32) + (local $1 i32) global.get $retain-release/TARGET local.tee $0 - local.get $0 - i32.load - global.get $retain-release/REF - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $retain-release/REF + local.tee $1 + local.get $0 + i32.load + local.tee $0 + i32.ne + if + local.get $1 + call $~lib/rt/stub/__retain + drop + local.get $0 + call $~lib/rt/stub/__release + end + local.get $1 + end i32.store ) - (func $retain-release/scopeBlock (; 19 ;) (type $FUNCSIG$v) + (func $retain-release/scopeBlock (; 18 ;) (type $FUNCSIG$v) (local $0 i32) global.get $retain-release/REF call $~lib/rt/stub/__retain @@ -280,73 +304,127 @@ local.get $0 call $~lib/rt/stub/__release ) - (func $retain-release/scopeBlockToUninitialized (; 20 ;) (type $FUNCSIG$v) + (func $retain-release/scopeBlockToUninitialized (; 19 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) i32.const 0 local.set $0 global.get $retain-release/REF call $~lib/rt/stub/__retain local.set $1 - local.get $0 - local.get $1 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $1 + local.tee $2 + local.get $0 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $2 + end local.set $0 local.get $1 call $~lib/rt/stub/__release local.get $0 call $~lib/rt/stub/__release ) - (func $retain-release/scopeBlockToInitialized (; 21 ;) (type $FUNCSIG$v) + (func $retain-release/scopeBlockToInitialized (; 20 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $retain-release/REF call $~lib/rt/stub/__retain local.set $0 global.get $retain-release/REF call $~lib/rt/stub/__retain local.set $1 - local.get $0 - local.get $1 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $1 + local.tee $2 + local.get $0 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $2 + end local.set $0 local.get $1 call $~lib/rt/stub/__release local.get $0 call $~lib/rt/stub/__release ) - (func $retain-release/scopeBlockToConditional (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeBlockToConditional (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) i32.const 0 local.set $1 local.get $0 if - local.get $1 - global.get $retain-release/REF - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $retain-release/REF + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $2 + end local.set $1 end global.get $retain-release/REF call $~lib/rt/stub/__retain local.set $2 - local.get $1 - local.get $2 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $2 + local.tee $3 + local.get $1 + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $3 + end local.set $1 local.get $2 call $~lib/rt/stub/__release local.get $1 call $~lib/rt/stub/__release ) - (func $retain-release/scopeTopLevelUninitialized (; 23 ;) (type $FUNCSIG$v) + (func $retain-release/scopeTopLevelUninitialized (; 22 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 0 local.set $0 local.get $0 call $~lib/rt/stub/__release ) - (func $retain-release/scopeTopLevelInitialized (; 24 ;) (type $FUNCSIG$v) + (func $retain-release/scopeTopLevelInitialized (; 23 ;) (type $FUNCSIG$v) (local $0 i32) global.get $retain-release/REF call $~lib/rt/stub/__retain @@ -354,21 +432,35 @@ local.get $0 call $~lib/rt/stub/__release ) - (func $retain-release/scopeTopLevelConditional (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeTopLevelConditional (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) i32.const 0 local.set $1 local.get $0 if - local.get $1 - global.get $retain-release/REF - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $retain-release/REF + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $2 + end local.set $1 end local.get $1 call $~lib/rt/stub/__release ) - (func $retain-release/scopeIf (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeIf (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 if @@ -379,7 +471,7 @@ call $~lib/rt/stub/__release end ) - (func $retain-release/scopeIfElse (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeIfElse (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 if @@ -396,7 +488,7 @@ call $~lib/rt/stub/__release end ) - (func $retain-release/scopeWhile (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeWhile (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) loop $continue|0 local.get $0 @@ -410,7 +502,7 @@ end end ) - (func $retain-release/scopeDo (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeDo (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) loop $continue|0 block @@ -424,7 +516,7 @@ br_if $continue|0 end ) - (func $retain-release/scopeFor (; 30 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeFor (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) block $break|0 loop $repeat|0 @@ -442,7 +534,7 @@ unreachable end ) - (func $retain-release/scopeBreak (; 31 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeBreak (; 30 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) block $break|0 loop $continue|0 @@ -458,7 +550,7 @@ end end ) - (func $retain-release/scopeContinue (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeContinue (; 31 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) loop $continue|0 local.get $0 @@ -472,7 +564,7 @@ end end ) - (func $retain-release/scopeThrow (; 33 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeThrow (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) loop $continue|0 local.get $0 @@ -495,7 +587,7 @@ end end ) - (func $retain-release/scopeUnreachable (; 34 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/scopeUnreachable (; 33 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) loop $continue|0 local.get $0 @@ -510,7 +602,7 @@ end end ) - (func $retain-release/callInline (; 35 ;) (type $FUNCSIG$v) + (func $retain-release/callInline (; 34 ;) (type $FUNCSIG$v) (local $0 i32) global.get $retain-release/REF call $~lib/rt/stub/__retain @@ -518,7 +610,7 @@ local.get $0 call $~lib/rt/stub/__release ) - (func $retain-release/provideRefInline (; 36 ;) (type $FUNCSIG$v) + (func $retain-release/provideRefInline (; 35 ;) (type $FUNCSIG$v) (local $0 i32) global.get $retain-release/REF call $~lib/rt/stub/__retain @@ -526,7 +618,7 @@ local.get $0 call $~lib/rt/stub/__release ) - (func $retain-release/receiveRefInline (; 37 ;) (type $FUNCSIG$v) + (func $retain-release/receiveRefInline (; 36 ;) (type $FUNCSIG$v) (local $0 i32) block $retain-release/returnRefInline|inlined.0 (result i32) global.get $retain-release/REF @@ -538,21 +630,21 @@ local.get $0 call $~lib/rt/stub/__release ) - (func $retain-release/receiveRefInlineDrop (; 38 ;) (type $FUNCSIG$v) + (func $retain-release/receiveRefInlineDrop (; 37 ;) (type $FUNCSIG$v) block $retain-release/returnRefInline|inlined.1 (result i32) global.get $retain-release/REF call $~lib/rt/stub/__retain end call $~lib/rt/stub/__release ) - (func $retain-release/provideRefIndirect (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/provideRefIndirect (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 1 global.set $~lib/argc global.get $retain-release/REF local.get $0 call_indirect (type $FUNCSIG$vi) ) - (func $retain-release/receiveRefIndirect (; 40 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/receiveRefIndirect (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) block (result i32) i32.const 0 @@ -566,16 +658,16 @@ local.get $1 call $~lib/rt/stub/__release ) - (func $retain-release/receiveRefIndirectDrop (; 41 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $retain-release/receiveRefIndirectDrop (; 40 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 0 global.set $~lib/argc local.get $0 call_indirect (type $FUNCSIG$i) call $~lib/rt/stub/__release ) - (func $start (; 42 ;) (type $FUNCSIG$v) + (func $start (; 41 ;) (type $FUNCSIG$v) call $start:retain-release ) - (func $null (; 43 ;) (type $FUNCSIG$v) + (func $null (; 42 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/array-access.untouched.wat b/tests/compiler/std/array-access.untouched.wat index 9ec13490..811facaf 100644 --- a/tests/compiler/std/array-access.untouched.wat +++ b/tests/compiler/std/array-access.untouched.wat @@ -183,10 +183,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $~lib/rt/stub/__retainRelease (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - ) - (func $~lib/util/string/compareImpl (; 13 ;) (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 (; 12 ;) (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) @@ -250,7 +247,7 @@ call $~lib/rt/stub/__release local.get $8 ) - (func $~lib/string/String#startsWith (; 14 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#startsWith (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -276,29 +273,41 @@ i32.const 0 i32.eq if - local.get $1 - i32.const 304 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 304 + local.tee $3 + local.get $1 + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $3 + end local.set $1 end local.get $2 - local.set $3 + local.set $5 local.get $0 call $~lib/string/String#get:length - local.set $4 - local.get $3 - local.tee $5 - i32.const 0 - local.tee $6 + local.set $6 local.get $5 - local.get $6 + local.tee $3 + i32.const 0 + local.tee $4 + local.get $3 + local.get $4 i32.gt_s select - local.tee $5 - local.get $4 - local.tee $6 - local.get $5 + local.tee $3 local.get $6 + local.tee $4 + local.get $3 + local.get $4 i32.lt_s select local.set $7 @@ -308,14 +317,14 @@ local.get $8 local.get $7 i32.add - local.get $4 + local.get $6 i32.gt_s if i32.const 0 - local.set $5 + local.set $3 local.get $1 call $~lib/rt/stub/__release - local.get $5 + local.get $3 return end local.get $0 @@ -325,12 +334,12 @@ local.get $8 call $~lib/util/string/compareImpl i32.eqz - local.set $5 + local.set $3 local.get $1 call $~lib/rt/stub/__release - local.get $5 + local.get $3 ) - (func $std/array-access/stringArrayMethodCall (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array-access/stringArrayMethodCall (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -350,7 +359,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__unchecked_get (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__unchecked_get (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -360,7 +369,7 @@ i32.load call $~lib/rt/stub/__retain ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -391,7 +400,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__unchecked_get ) - (func $std/array-access/stringArrayArrayPropertyAccess (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array-access/stringArrayArrayPropertyAccess (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -415,7 +424,7 @@ call $~lib/rt/stub/__release local.get $3 ) - (func $std/array-access/stringArrayArrayMethodCall (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array-access/stringArrayArrayMethodCall (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -441,6 +450,6 @@ call $~lib/rt/stub/__release local.get $3 ) - (func $null (; 20 ;) (type $FUNCSIG$v) + (func $null (; 19 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index a7ba8e66..5ab2998d 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -1885,33 +1885,8 @@ local.get $5 global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/__retainRelease (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.ne - if - local.get $1 - i32.const 7460 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - i32.const 7460 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - end - local.get $1 - ) - (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 (; 30 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) local.get $1 i32.const 1073741808 local.get $2 @@ -1951,10 +1926,19 @@ i32.const 0 i32.store offset=8 local.get $0 - local.get $0 i32.load + local.tee $3 + local.get $1 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $0 local.get $1 - call $~lib/rt/pure/__retainRelease i32.store local.get $0 local.get $1 @@ -1964,7 +1948,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/array/Array#constructor (; 32 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array#constructor (; 31 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 16 i32.const 3 @@ -1981,7 +1965,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> (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -1991,7 +1975,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 (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -1999,7 +1983,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 (; 34 ;) (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 @@ -2032,7 +2016,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 (; 35 ;) (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 @@ -2257,7 +2241,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 (; 36 ;) (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 @@ -2324,7 +2308,7 @@ 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 (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -2343,7 +2327,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 (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2400,7 +2384,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 (; 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.get $0 @@ -2476,7 +2460,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 (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -2499,7 +2483,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 (; 41 ;) (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 @@ -2561,7 +2545,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 (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2583,7 +2567,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 (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2697,7 +2681,7 @@ 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 (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -2733,7 +2717,7 @@ i32.const 16 i32.add ) - (func $~lib/array/ensureSize (; 46 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/ensureSize (; 45 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2789,7 +2773,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 (; 46 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2812,7 +2796,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 (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2823,7 +2807,7 @@ if i32.const 872 i32.const 488 - i32.const 250 + i32.const 258 i32.const 20 call $~lib/builtins/abort unreachable @@ -2844,7 +2828,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 (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2870,7 +2854,7 @@ call $~lib/rt/pure/__release i32.const 272 i32.const 488 - i32.const 197 + i32.const 205 i32.const 59 call $~lib/builtins/abort unreachable @@ -2904,19 +2888,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/rt/pure/__skippedRelease (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 7460 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - local.get $1 - ) - (func $~lib/array/Array#copyWithin (; 51 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#copyWithin (; 49 ;) (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 @@ -3079,7 +3051,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#unshift (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#unshift (; 50 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3108,7 +3080,7 @@ local.get $2 i32.store offset=12 ) - (func $~lib/array/Array#shift (; 53 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#shift (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3121,7 +3093,7 @@ if i32.const 872 i32.const 488 - i32.const 311 + i32.const 319 i32.const 20 call $~lib/builtins/abort unreachable @@ -3153,7 +3125,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#reverse (; 54 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#reverse (; 52 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3203,7 +3175,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#indexOf (; 55 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 53 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -3263,7 +3235,7 @@ end i32.const -1 ) - (func $~lib/array/Array#includes (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 54 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 local.get $2 @@ -3271,7 +3243,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#splice (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 55 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3361,7 +3333,7 @@ i32.store offset=12 local.get $4 ) - (func $~lib/array/Array#__set (; 58 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 56 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -3390,7 +3362,7 @@ i32.store offset=12 end ) - (func $start:std/array~anonymous|0 (; 59 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|0 (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3399,7 +3371,7 @@ local.get $0 i32.eqz ) - (func $~lib/array/Array#findIndex (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3447,7 +3419,7 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 59 ;) (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 +3429,7 @@ i32.const 1 i32.eq ) - (func $start:std/array~anonymous|2 (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 60 ;) (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 +3439,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|3 (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3480,7 +3452,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|5 (; 64 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3493,7 +3465,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|6 (; 65 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3503,7 +3475,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#every (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3551,7 +3523,7 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 65 ;) (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 +3533,7 @@ i32.const 0 i32.le_s ) - (func $start:std/array~anonymous|8 (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3574,7 +3546,7 @@ i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|9 (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3584,7 +3556,7 @@ i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|10 (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3597,7 +3569,7 @@ i32.const 3 i32.lt_s ) - (func $start:std/array~anonymous|11 (; 71 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3607,7 +3579,7 @@ i32.const 3 i32.ge_s ) - (func $~lib/array/Array#some (; 72 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 70 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3655,7 +3627,7 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 73 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 71 ;) (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 +3637,7 @@ i32.const -1 i32.le_s ) - (func $start:std/array~anonymous|13 (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3678,7 +3650,7 @@ i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|14 (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 73 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3688,7 +3660,7 @@ i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|15 (; 76 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3701,7 +3673,7 @@ i32.const 3 i32.gt_s ) - (func $start:std/array~anonymous|16 (; 77 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 75 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3712,7 +3684,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#forEach (; 78 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 76 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3755,7 +3727,7 @@ unreachable end ) - (func $start:std/array~anonymous|17 (; 79 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 77 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3769,7 +3741,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|19 (; 80 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 78 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3783,7 +3755,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|20 (; 81 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 79 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -3885,7 +3857,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|21 (; 82 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 80 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3894,7 +3866,7 @@ local.get $0 f32.convert_i32_s ) - (func $~lib/array/Array#map (; 83 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#map (; 81 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3952,7 +3924,7 @@ end local.get $4 ) - (func $~lib/array/Array#__get (; 84 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 82 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=8 @@ -3975,7 +3947,7 @@ i32.add f32.load ) - (func $start:std/array~anonymous|22 (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|22 (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -3990,7 +3962,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/array/Array#map (; 86 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 84 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4050,7 +4022,7 @@ end local.get $5 ) - (func $start:std/array~anonymous|23 (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4062,7 +4034,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $start:std/array~anonymous|24 (; 88 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 86 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4077,7 +4049,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $start:std/array~anonymous|25 (; 89 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4087,7 +4059,7 @@ i32.const 2 i32.ge_s ) - (func $~lib/array/Array#filter (; 90 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 88 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4144,7 +4116,7 @@ end local.get $4 ) - (func $start:std/array~anonymous|26 (; 91 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 89 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4161,7 +4133,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|27 (; 92 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 90 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4175,7 +4147,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|28 (; 93 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 91 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -4192,7 +4164,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|29 (; 94 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 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 @@ -4202,7 +4174,7 @@ local.get $1 i32.add ) - (func $~lib/array/Array#reduce (; 95 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 93 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4246,7 +4218,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|31 (; 96 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|31 (; 94 ;) (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 @@ -4259,7 +4231,7 @@ local.get $0 select ) - (func $start:std/array~anonymous|32 (; 97 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 95 ;) (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 @@ -4272,7 +4244,7 @@ local.get $0 select ) - (func $start:std/array~anonymous|33 (; 98 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 96 ;) (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 @@ -4285,7 +4257,7 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|35 (; 99 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 97 ;) (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 @@ -4298,7 +4270,7 @@ local.get $1 i32.add ) - (func $~lib/array/Array#reduceRight (; 100 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 98 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -4335,7 +4307,7 @@ end local.get $2 ) - (func $~lib/math/murmurHash3 (; 101 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 99 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 i64.const 33 i64.shr_u @@ -4356,7 +4328,7 @@ i64.shr_u i64.xor ) - (func $~lib/math/splitMix32 (; 102 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 100 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -4388,7 +4360,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 103 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 101 ;) (type $FUNCSIG$vj) (param $0 i64) local.get $0 i64.eqz if @@ -4417,7 +4389,7 @@ call $~lib/math/splitMix32 global.set $~lib/math/random_state1_32 ) - (func $~lib/util/sort/insertionSort (; 104 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 102 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -4499,7 +4471,7 @@ unreachable end ) - (func $~lib/rt/tlsf/__free (; 105 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/tlsf/__free (; 103 ;) (type $FUNCSIG$vi) (param $0 i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -4532,7 +4504,7 @@ i32.sub call $~lib/rt/tlsf/freeBlock ) - (func $~lib/util/sort/weakHeapSort (; 106 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 104 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -4793,7 +4765,7 @@ local.get $5 f32.store ) - (func $~lib/array/Array#sort (; 107 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 105 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -4858,7 +4830,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 108 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 106 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4887,12 +4859,12 @@ i32.lt_s i32.sub ) - (func $~lib/builtins/isNaN (; 109 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/builtins/isNaN (; 107 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.ne ) - (func $std/array/isArraysEqual (; 110 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 108 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4960,7 +4932,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 111 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 109 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -5042,7 +5014,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 112 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 110 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -5303,7 +5275,7 @@ local.get $5 f64.store ) - (func $~lib/array/Array#sort (; 113 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 111 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -5368,7 +5340,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 114 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 112 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -5397,7 +5369,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#__get (; 115 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 113 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=8 @@ -5420,12 +5392,12 @@ i32.add f64.load ) - (func $~lib/builtins/isNaN (; 116 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 114 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $std/array/isArraysEqual (; 117 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 115 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5493,7 +5465,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 118 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 116 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5575,7 +5547,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 119 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 117 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5836,7 +5808,7 @@ local.get $1 i32.store ) - (func $~lib/array/Array#sort (; 120 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 118 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5900,12 +5872,12 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 121 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 119 ;) (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 (; 122 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 120 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -5914,7 +5886,7 @@ i32.lt_u i32.sub ) - (func $~lib/array/Array.create (; 123 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create (; 121 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 268435452 i32.gt_u @@ -5943,7 +5915,7 @@ call $~lib/memory/memory.fill local.get $0 ) - (func $std/array/createReverseOrderedArray (; 124 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 122 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5972,7 +5944,7 @@ end local.get $2 ) - (func $~lib/math/NativeMath.random (; 125 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 123 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded @@ -6019,7 +5991,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 126 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 124 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -6048,7 +6020,7 @@ end local.get $2 ) - (func $std/array/isSorted (; 127 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 125 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -6097,7 +6069,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $std/array/assertSorted (; 128 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 126 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6122,7 +6094,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/array/assertSortedDefault (; 129 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSortedDefault (; 127 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -6132,12 +6104,12 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|44 (; 130 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 128 ;) (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> (; 131 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array.create<~lib/array/Array> (; 129 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 2 i32.const 2 @@ -6156,7 +6128,7 @@ call $~lib/memory/memory.fill local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 132 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 130 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6167,15 +6139,22 @@ i32.shl i32.add local.tee $0 - local.get $0 i32.load + local.tee $1 local.get $2 - call $~lib/rt/pure/__retainRelease - i32.store + i32.ne + if + local.get $0 + local.get $2 + call $~lib/rt/pure/__retain + i32.store + local.get $1 + call $~lib/rt/pure/__release + end local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/array/Array>#__set (; 133 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__set (; 131 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6217,7 +6196,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedNestedArray (; 134 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 132 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6251,7 +6230,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|47 (; 135 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 133 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6273,7 +6252,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 136 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 134 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6366,7 +6345,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#sort (; 137 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#sort (; 135 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6428,7 +6407,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 136 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -6438,7 +6417,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#__get (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__get (; 137 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -6469,7 +6448,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get ) - (func $std/array/isSorted<~lib/array/Array> (; 140 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/array/Array> (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6530,7 +6509,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $std/array/assertSorted<~lib/array/Array> (; 141 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/array/Array> (; 139 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6555,7 +6534,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array.create> (; 142 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array.create> (; 140 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 512 i32.const 2 @@ -6574,7 +6553,7 @@ call $~lib/memory/memory.fill local.get $0 ) - (func $std/array/createReverseOrderedElementsArray (; 143 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 141 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6609,7 +6588,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|48 (; 144 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 142 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6629,7 +6608,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array<~lib/string/String | null>#__get (; 145 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__get (; 143 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -6648,7 +6627,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get ) - (func $std/array/isSorted<~lib/string/String | null> (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String | null> (; 144 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6709,7 +6688,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $std/array/assertSorted<~lib/string/String | null> (; 147 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null> (; 145 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6734,7 +6713,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String#get:length (; 148 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 146 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -6742,7 +6721,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 149 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/compareImpl (; 147 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6791,7 +6770,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 150 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 148 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -6872,7 +6851,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__eq (; 151 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 149 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6928,7 +6907,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__ne (; 152 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 150 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -6947,7 +6926,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/isArraysEqual<~lib/string/String | null> (; 153 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual<~lib/string/String | null> (; 151 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7028,7 +7007,7 @@ call $~lib/rt/pure/__release i32.const 1 ) - (func $~lib/array/Array.create<~lib/string/String> (; 154 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/array/Array.create<~lib/string/String> (; 152 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 400 i32.const 2 @@ -7047,7 +7026,7 @@ call $~lib/memory/memory.fill local.get $0 ) - (func $~lib/string/String#charAt (; 155 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#charAt (; 153 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 3200 @@ -7072,7 +7051,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#concat (; 156 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 154 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7084,7 +7063,15 @@ if local.get $1 i32.const 4408 - call $~lib/rt/pure/__retainRelease + i32.ne + if + i32.const 4408 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + i32.const 4408 local.set $1 end local.get $0 @@ -7127,7 +7114,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 157 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 155 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -7148,11 +7135,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/createRandomString (; 158 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 156 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) i32.const 4248 call $~lib/rt/pure/__retain local.set $1 @@ -7163,6 +7151,7 @@ i32.ge_s br_if $break|0 local.get $1 + local.tee $3 local.get $1 call $~lib/math/NativeMath.random i32.const 3200 @@ -7172,15 +7161,22 @@ f64.floor i32.trunc_f64_s call $~lib/string/String#charAt - local.tee $3 - call $~lib/string/String.__concat local.tee $4 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $3 - call $~lib/rt/pure/__release + call $~lib/string/String.__concat + local.tee $5 + local.tee $1 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end local.get $4 call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release local.get $2 i32.const 1 i32.add @@ -7190,7 +7186,7 @@ end local.get $1 ) - (func $std/array/createRandomStringArray (; 159 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createRandomStringArray (; 157 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7221,7 +7217,7 @@ end local.get $1 ) - (func $~lib/string/String#substring (; 160 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -7308,7 +7304,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#join_bool (; 161 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_bool (; 159 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7471,7 +7467,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/number/decimalCount32 (; 162 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 160 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 2 local.get $0 @@ -7519,7 +7515,7 @@ i32.lt_u select ) - (func $~lib/util/number/utoa_simple (; 163 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 161 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -7545,7 +7541,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/itoa32 (; 164 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 162 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7588,7 +7584,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 165 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 163 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -7632,7 +7628,7 @@ end local.get $2 ) - (func $~lib/array/Array#join_int (; 166 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 164 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7766,7 +7762,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array#join (; 167 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -7778,7 +7774,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/util/number/utoa32 (; 168 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 166 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -7802,7 +7798,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 169 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 167 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -7826,7 +7822,7 @@ call $~lib/util/number/utoa_simple local.get $0 ) - (func $~lib/array/Array#join_int (; 170 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 168 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7960,7 +7956,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array#join (; 171 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -7972,14 +7968,14 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/builtins/isFinite (; 172 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isFinite (; 170 ;) (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 (; 173 ;) (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 (; 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) (local $7 i32) (local $8 i32) (local $9 i64) @@ -8380,7 +8376,7 @@ local.get $6 end ) - (func $~lib/util/number/prettify (; 174 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 172 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -8631,7 +8627,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 175 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 173 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) @@ -8919,7 +8915,7 @@ local.get $10 i32.add ) - (func $~lib/util/number/dtoa (; 176 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 174 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -8972,7 +8968,7 @@ call $~lib/rt/tlsf/__free local.get $2 ) - (func $~lib/util/number/dtoa_stream (; 177 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 175 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -9040,7 +9036,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array#join_flt (; 178 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_flt (; 176 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9174,7 +9170,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array<~lib/string/String>#join_str (; 179 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join_str (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9189,7 +9185,7 @@ i32.load offset=12 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if @@ -9203,11 +9199,11 @@ end local.get $0 i32.load offset=4 - local.set $6 - local.get $5 + local.set $7 + local.get $6 i32.eqz if - local.get $6 + local.get $7 i32.load call $~lib/rt/pure/__retain local.set $0 @@ -9218,28 +9214,37 @@ end local.get $1 call $~lib/string/String#get:length - local.set $7 + local.set $8 i32.const 0 local.set $0 - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $4 + local.set $5 loop $repeat|0 block $break|0 local.get $2 - local.get $4 + local.get $5 i32.ge_s br_if $break|0 local.get $0 + local.tee $4 local.get $2 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release + end + local.get $0 if local.get $0 call $~lib/string/String#get:length @@ -9256,8 +9261,8 @@ end i32.const 0 local.set $2 - local.get $5 - local.get $7 + local.get $6 + local.get $8 i32.mul local.get $3 i32.add @@ -9268,22 +9273,31 @@ call $~lib/rt/pure/__retain local.set $3 i32.const 0 - local.set $4 + local.set $5 loop $repeat|1 block $break|1 - local.get $4 local.get $5 + local.get $6 i32.ge_s br_if $break|1 local.get $0 - local.get $4 + local.tee $4 + local.get $5 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release + end + local.get $0 if local.get $2 i32.const 1 @@ -9293,7 +9307,24 @@ local.get $0 local.get $0 call $~lib/string/String#get:length - local.tee $8 + local.tee $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $8 + if + local.get $2 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $1 + local.get $8 i32.const 1 i32.shl call $~lib/memory/memory.copy @@ -9302,39 +9333,31 @@ i32.add local.set $2 end - local.get $7 - if - local.get $2 - i32.const 1 - i32.shl - local.get $3 - i32.add - local.get $1 - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $7 - i32.add - local.set $2 - end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|1 end end local.get $0 - local.get $5 + local.tee $4 + local.get $6 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release + end + local.get $0 if local.get $2 i32.const 1 @@ -9354,7 +9377,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#join (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -9366,13 +9389,13 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/array/Ref#constructor (; 181 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/Ref#constructor (; 179 ;) (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 (; 182 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_ref (; 180 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9380,6 +9403,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 4512 call $~lib/rt/pure/__retain drop @@ -9387,7 +9411,7 @@ i32.load offset=12 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.const 0 i32.lt_s if @@ -9401,8 +9425,8 @@ end local.get $0 i32.load offset=4 - local.set $6 - local.get $2 + local.set $7 + local.get $3 i32.eqz if i32.const 6248 @@ -9415,125 +9439,135 @@ end i32.const 4512 call $~lib/string/String#get:length - local.tee $3 + local.tee $5 i32.const 15 i32.add - local.get $2 + local.get $3 i32.mul i32.const 15 i32.add - local.tee $7 + local.tee $8 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $1 + local.set $2 i32.const 0 local.set $0 loop $repeat|0 - local.get $4 - local.get $2 + local.get $6 + local.get $3 i32.lt_s if - local.get $5 + local.get $0 + local.set $4 local.get $4 + local.get $6 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load - call $~lib/rt/pure/__retainRelease - local.tee $5 + local.tee $0 + i32.ne if local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release + end + local.get $0 + if + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 6248 i32.const 30 call $~lib/memory/memory.copy - local.get $0 + local.get $1 i32.const 15 i32.add - local.set $0 + local.set $1 end - local.get $3 + local.get $5 if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 4512 - local.get $3 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - local.get $3 + local.get $1 + local.get $5 i32.add - local.set $0 + local.set $1 end - local.get $4 + local.get $6 i32.const 1 i32.add - local.set $4 + local.set $6 br $repeat|0 end end block (result i32) - local.get $2 + local.get $3 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 6248 i32.const 30 call $~lib/memory/memory.copy - local.get $0 + local.get $1 i32.const 15 i32.add - local.set $0 + local.set $1 end - local.get $7 - local.get $0 + local.get $8 + local.get $1 i32.gt_s end if + local.get $2 local.get $1 - local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $4 i32.const 4512 call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 + local.get $2 call $~lib/rt/pure/__release local.get $0 + call $~lib/rt/pure/__release + local.get $4 return end i32.const 4512 call $~lib/rt/pure/__release - local.get $5 + local.get $0 call $~lib/rt/pure/__release - local.get $1 + local.get $2 ) - (func $~lib/array/Array#toString (; 183 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 181 ;) (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 (; 184 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 182 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -9588,7 +9622,7 @@ end local.get $2 ) - (func $~lib/array/Array#join_int (; 185 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 183 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9718,7 +9752,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/itoa_stream (; 186 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 184 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -9748,7 +9782,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/array/Array#join_int (; 187 ;) (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) @@ -9882,7 +9916,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/decimalCount64 (; 188 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 186 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) i32.const 11 i32.const 12 local.get $0 @@ -9930,7 +9964,7 @@ i64.lt_u select ) - (func $~lib/util/number/utoa_simple (; 189 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 187 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i64) loop $continue|0 local.get $1 @@ -9959,7 +9993,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/utoa64 (; 190 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 188 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10003,7 +10037,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 191 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 189 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -10043,7 +10077,7 @@ end local.get $1 ) - (func $~lib/array/Array#join_int (; 192 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 190 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10177,7 +10211,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/itoa64 (; 193 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 191 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10244,7 +10278,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 194 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 192 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -10307,7 +10341,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 195 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 193 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10441,12 +10475,12 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array<~lib/string/String | null>#toString (; 196 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#toString (; 194 ;) (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 (; 197 ;) (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) @@ -10454,6 +10488,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 4512 call $~lib/rt/pure/__retain drop @@ -10461,7 +10496,7 @@ i32.load offset=12 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.const 0 i32.lt_s if @@ -10475,23 +10510,29 @@ end i32.const 4248 call $~lib/rt/pure/__retain - local.set $1 + local.set $2 i32.const 4512 call $~lib/string/String#get:length - local.set $6 + local.set $7 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 0 local.set $0 - local.get $2 + local.get $3 i32.eqz if - i32.const 0 - local.get $3 + local.get $4 i32.load - call $~lib/rt/pure/__retainRelease local.tee $0 + if + local.get $0 + call $~lib/rt/pure/__retain + drop + i32.const 0 + call $~lib/rt/pure/__release + end + local.get $0 if (result i32) local.get $0 i32.const 4512 @@ -10500,97 +10541,139 @@ i32.const 4248 call $~lib/rt/pure/__retain end - local.set $2 + local.set $1 i32.const 4512 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $1 return end loop $repeat|0 - local.get $4 - local.get $2 + local.get $5 + local.get $3 i32.lt_s if local.get $0 - local.get $4 + local.set $1 + local.get $1 + local.get $5 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne if + local.get $0 + call $~lib/rt/pure/__retain + drop local.get $1 - local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + if + local.get $2 + local.tee $1 local.get $0 i32.const 4512 call $~lib/array/Array#join - local.tee $5 + local.tee $6 call $~lib/string/String.__concat - local.tee $7 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $5 + local.tee $8 + local.tee $2 + local.get $1 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $6 call $~lib/rt/pure/__release - local.get $7 + local.get $8 call $~lib/rt/pure/__release end - local.get $6 + local.get $7 if - local.get $1 - local.get $1 + local.get $2 + local.tee $1 i32.const 4512 call $~lib/string/String.__concat - local.tee $5 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $5 + local.tee $6 + local.tee $2 + local.get $1 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $6 call $~lib/rt/pure/__release end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 end end - local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - call $~lib/rt/pure/__retainRelease - local.tee $0 + local.tee $1 + local.get $0 + i32.ne if local.get $1 - local.get $1 + call $~lib/rt/pure/__retain + drop local.get $0 + call $~lib/rt/pure/__release + end + local.get $1 + if + local.get $2 + local.tee $0 + local.get $1 i32.const 4512 call $~lib/array/Array#join - local.tee $2 - call $~lib/string/String.__concat local.tee $3 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $2 - call $~lib/rt/pure/__release + call $~lib/string/String.__concat + local.tee $4 + local.tee $2 + local.get $0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/rt/pure/__release + end local.get $3 call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release end i32.const 4512 call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release local.get $1 + call $~lib/rt/pure/__release + local.get $2 ) - (func $~lib/util/number/itoa_stream (; 198 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 196 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -10620,7 +10703,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/array/Array#join_int (; 199 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 197 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10750,7 +10833,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array#join (; 200 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join (; 198 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 4512 call $~lib/rt/pure/__retain drop @@ -10761,7 +10844,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 201 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 199 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10769,6 +10852,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 4512 call $~lib/rt/pure/__retain drop @@ -10776,7 +10860,7 @@ i32.load offset=12 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.const 0 i32.lt_s if @@ -10790,23 +10874,29 @@ end i32.const 4248 call $~lib/rt/pure/__retain - local.set $1 + local.set $2 i32.const 4512 call $~lib/string/String#get:length - local.set $6 + local.set $7 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 0 local.set $0 - local.get $2 + local.get $3 i32.eqz if - i32.const 0 - local.get $3 + local.get $4 i32.load - call $~lib/rt/pure/__retainRelease local.tee $0 + if + local.get $0 + call $~lib/rt/pure/__retain + drop + i32.const 0 + call $~lib/rt/pure/__release + end + local.get $0 if (result i32) local.get $0 call $~lib/array/Array#join @@ -10814,95 +10904,137 @@ i32.const 4248 call $~lib/rt/pure/__retain end - local.set $2 + local.set $1 i32.const 4512 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $1 return end loop $repeat|0 - local.get $4 - local.get $2 + local.get $5 + local.get $3 i32.lt_s if local.get $0 - local.get $4 + local.set $1 + local.get $1 + local.get $5 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne if + local.get $0 + call $~lib/rt/pure/__retain + drop local.get $1 - local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + if + local.get $2 + local.tee $1 local.get $0 call $~lib/array/Array#join - local.tee $5 + local.tee $6 call $~lib/string/String.__concat - local.tee $7 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $5 + local.tee $8 + local.tee $2 + local.get $1 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $6 call $~lib/rt/pure/__release - local.get $7 + local.get $8 call $~lib/rt/pure/__release end - local.get $6 + local.get $7 if - local.get $1 - local.get $1 + local.get $2 + local.tee $1 i32.const 4512 call $~lib/string/String.__concat - local.tee $5 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $5 + local.tee $6 + local.tee $2 + local.get $1 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $6 call $~lib/rt/pure/__release end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 end end - local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - call $~lib/rt/pure/__retainRelease - local.tee $0 + local.tee $1 + local.get $0 + i32.ne if local.get $1 - local.get $1 + call $~lib/rt/pure/__retain + drop local.get $0 - call $~lib/array/Array#join - local.tee $2 - call $~lib/string/String.__concat - local.tee $3 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $2 call $~lib/rt/pure/__release + end + local.get $1 + if + local.get $2 + local.tee $0 + local.get $1 + call $~lib/array/Array#join + local.tee $3 + call $~lib/string/String.__concat + local.tee $4 + local.tee $2 + local.get $0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/rt/pure/__release + end local.get $3 call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release end i32.const 4512 call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release local.get $1 + call $~lib/rt/pure/__release + local.get $2 ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 202 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 200 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10910,6 +11042,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 4512 call $~lib/rt/pure/__retain drop @@ -10917,7 +11050,7 @@ i32.load offset=12 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.const 0 i32.lt_s if @@ -10931,23 +11064,29 @@ end i32.const 4248 call $~lib/rt/pure/__retain - local.set $1 + local.set $2 i32.const 4512 call $~lib/string/String#get:length - local.set $6 + local.set $7 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 0 local.set $0 - local.get $2 + local.get $3 i32.eqz if - i32.const 0 - local.get $3 + local.get $4 i32.load - call $~lib/rt/pure/__retainRelease local.tee $0 + if + local.get $0 + call $~lib/rt/pure/__retain + drop + i32.const 0 + call $~lib/rt/pure/__release + end + local.get $0 if (result i32) local.get $0 i32.const 4512 @@ -10956,97 +11095,139 @@ i32.const 4248 call $~lib/rt/pure/__retain end - local.set $2 + local.set $1 i32.const 4512 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $1 return end loop $repeat|0 - local.get $4 - local.get $2 + local.get $5 + local.get $3 i32.lt_s if local.get $0 - local.get $4 + local.set $1 + local.get $1 + local.get $5 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne if + local.get $0 + call $~lib/rt/pure/__retain + drop local.get $1 - local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + if + local.get $2 + local.tee $1 local.get $0 i32.const 4512 call $~lib/array/Array#join - local.tee $5 + local.tee $6 call $~lib/string/String.__concat - local.tee $7 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $5 + local.tee $8 + local.tee $2 + local.get $1 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $6 call $~lib/rt/pure/__release - local.get $7 + local.get $8 call $~lib/rt/pure/__release end - local.get $6 + local.get $7 if - local.get $1 - local.get $1 + local.get $2 + local.tee $1 i32.const 4512 call $~lib/string/String.__concat - local.tee $5 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $5 + local.tee $6 + local.tee $2 + local.get $1 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $6 call $~lib/rt/pure/__release end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 end end - local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - call $~lib/rt/pure/__retainRelease - local.tee $0 + local.tee $1 + local.get $0 + i32.ne if local.get $1 - local.get $1 + call $~lib/rt/pure/__retain + drop local.get $0 + call $~lib/rt/pure/__release + end + local.get $1 + if + local.get $2 + local.tee $0 + local.get $1 i32.const 4512 call $~lib/array/Array#join - local.tee $2 - call $~lib/string/String.__concat local.tee $3 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $2 - call $~lib/rt/pure/__release + call $~lib/string/String.__concat + local.tee $4 + local.tee $2 + local.get $0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/rt/pure/__release + end local.get $3 call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release end i32.const 4512 call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release local.get $1 + call $~lib/rt/pure/__release + local.get $2 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 203 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 201 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 4512 call $~lib/rt/pure/__retain drop @@ -11057,7 +11238,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 204 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 202 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11065,6 +11246,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) i32.const 4512 call $~lib/rt/pure/__retain drop @@ -11072,7 +11254,7 @@ i32.load offset=12 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.const 0 i32.lt_s if @@ -11086,23 +11268,29 @@ end i32.const 4248 call $~lib/rt/pure/__retain - local.set $1 + local.set $2 i32.const 4512 call $~lib/string/String#get:length - local.set $6 + local.set $7 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 0 local.set $0 - local.get $2 + local.get $3 i32.eqz if - i32.const 0 - local.get $3 + local.get $4 i32.load - call $~lib/rt/pure/__retainRelease local.tee $0 + if + local.get $0 + call $~lib/rt/pure/__retain + drop + i32.const 0 + call $~lib/rt/pure/__release + end + local.get $0 if (result i32) local.get $0 call $~lib/array/Array<~lib/array/Array>#join @@ -11110,95 +11298,137 @@ i32.const 4248 call $~lib/rt/pure/__retain end - local.set $2 + local.set $1 i32.const 4512 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $1 return end loop $repeat|0 - local.get $4 - local.get $2 + local.get $5 + local.get $3 i32.lt_s if local.get $0 - local.get $4 + local.set $1 + local.get $1 + local.get $5 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne if + local.get $0 + call $~lib/rt/pure/__retain + drop local.get $1 - local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + if + local.get $2 + local.tee $1 local.get $0 call $~lib/array/Array<~lib/array/Array>#join - local.tee $5 + local.tee $6 call $~lib/string/String.__concat - local.tee $7 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $5 + local.tee $8 + local.tee $2 + local.get $1 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $6 call $~lib/rt/pure/__release - local.get $7 + local.get $8 call $~lib/rt/pure/__release end - local.get $6 + local.get $7 if - local.get $1 - local.get $1 + local.get $2 + local.tee $1 i32.const 4512 call $~lib/string/String.__concat - local.tee $5 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $5 + local.tee $6 + local.tee $2 + local.get $1 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $6 call $~lib/rt/pure/__release end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $repeat|0 end end - local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - call $~lib/rt/pure/__retainRelease - local.tee $0 + local.tee $1 + local.get $0 + i32.ne if local.get $1 - local.get $1 + call $~lib/rt/pure/__retain + drop local.get $0 - call $~lib/array/Array<~lib/array/Array>#join - local.tee $2 - call $~lib/string/String.__concat - local.tee $3 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $2 call $~lib/rt/pure/__release + end + local.get $1 + if + local.get $2 + local.tee $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#join + local.tee $3 + call $~lib/string/String.__concat + local.tee $4 + local.tee $2 + local.get $0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/rt/pure/__release + end local.get $3 call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release end i32.const 4512 call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release local.get $1 + call $~lib/rt/pure/__release + local.get $2 ) - (func $start:std/array (; 205 ;) (type $FUNCSIG$v) + (func $start:std/array (; 203 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11280,9 +11510,9 @@ i32.const 4 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $0 - local.set $1 - local.get $0 + local.tee $1 + local.set $2 + local.get $1 call $~lib/array/Array.isArray if i32.const 0 @@ -11299,9 +11529,9 @@ i32.const 1 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $3 - local.set $0 - local.get $3 + local.tee $0 + local.set $1 + local.get $0 call $~lib/array/Array.isArray if i32.const 0 @@ -11321,9 +11551,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/rt/pure/__release - local.get $0 + local.get $1 call $~lib/rt/pure/__release i32.const 5 i32.const 0 @@ -11331,22 +11561,22 @@ i32.const 440 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $4 call $~lib/rt/pure/__retain - local.tee $2 + local.tee $3 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 5 i32.const 0 i32.const 6 i32.const 464 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $5 call $std/array/isArraysEqual i32.eqz if @@ -11357,20 +11587,20 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 0 i32.const 0 i32.const 2147483647 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 5 i32.const 0 i32.const 6 i32.const 536 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $6 call $std/array/isArraysEqual i32.eqz if @@ -11381,20 +11611,20 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 5 i32.const 0 i32.const 6 i32.const 560 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $2 call $std/array/isArraysEqual i32.eqz if @@ -11405,20 +11635,20 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 2 i32.const -2 i32.const 2147483647 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 5 i32.const 0 i32.const 6 i32.const 584 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 call $std/array/isArraysEqual i32.eqz if @@ -11429,20 +11659,20 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 5 i32.const 0 i32.const 6 i32.const 608 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 call $std/array/isArraysEqual i32.eqz if @@ -11453,42 +11683,42 @@ call $~lib/builtins/abort unreachable end + local.get $4 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $5 + local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release i32.const 5 i32.const 2 i32.const 7 i32.const 632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $4 call $~lib/rt/pure/__retain - local.tee $2 + local.tee $3 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 5 i32.const 2 i32.const 7 i32.const 672 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $5 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11500,20 +11730,20 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 0 i32.const 0 i32.const 2147483647 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 5 i32.const 2 i32.const 7 i32.const 712 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11525,20 +11755,20 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 5 i32.const 2 i32.const 7 i32.const 752 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11550,20 +11780,20 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 2 i32.const -2 i32.const 2147483647 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 5 i32.const 2 i32.const 7 i32.const 792 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11575,20 +11805,20 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 5 i32.const 2 i32.const 7 i32.const 832 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11600,20 +11830,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $5 + local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release global.get $std/array/arr i32.load offset=12 if @@ -11872,7 +12102,7 @@ global.get $std/array/arr local.get $4 call $~lib/array/Array#concat - local.set $0 + local.set $1 global.get $std/array/arr call $std/array/internalCapacity i32.const 3 @@ -11897,7 +12127,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -11909,14 +12139,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 i32.const 2 i32.const 3 i32.const 920 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $0 call $~lib/array/Array#concat call $~lib/rt/pure/__release global.get $std/array/arr @@ -11931,7 +12161,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -11944,7 +12174,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -11957,7 +12187,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -11976,12 +12206,12 @@ local.get $4 i32.const 47 call $~lib/array/Array#push - local.get $0 global.get $std/array/arr local.get $4 call $~lib/array/Array#concat - call $~lib/rt/pure/__skippedRelease - local.set $0 + local.set $2 + local.get $1 + call $~lib/rt/pure/__release global.get $std/array/arr call $std/array/internalCapacity i32.const 3 @@ -12006,7 +12236,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=12 i32.const 5 i32.ne @@ -12018,7 +12248,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -12031,7 +12261,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -12044,7 +12274,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -12057,7 +12287,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -12070,7 +12300,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -12083,10 +12313,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 call $~lib/array/Array#pop drop - local.get $0 + local.get $2 i32.load offset=12 i32.const 4 i32.ne @@ -12098,12 +12328,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 global.get $std/array/arr i32.const 0 call $~lib/array/Array#concat - call $~lib/rt/pure/__skippedRelease - local.tee $0 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 i32.load offset=12 i32.const 3 i32.ne @@ -12115,7 +12346,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -12134,9 +12365,9 @@ i32.const 936 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $1 call $~lib/rt/pure/__retain - local.tee $5 + local.tee $6 i32.load offset=12 if i32.const 0 @@ -12146,12 +12377,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $5 + local.get $6 global.get $std/array/arr call $~lib/array/Array#concat - call $~lib/rt/pure/__skippedRelease - local.tee $0 + local.set $2 + local.get $5 + call $~lib/rt/pure/__release + local.get $2 i32.load offset=12 i32.const 3 i32.ne @@ -12163,7 +12395,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $6 i32.load offset=12 if i32.const 0 @@ -12175,36 +12407,42 @@ end local.get $4 call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $6 call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 0 i32.const 5 i32.const 2 i32.const 3 i32.const 952 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $29 - call $~lib/rt/pure/__retainRelease + local.tee $30 local.tee $0 + if + local.get $0 + call $~lib/rt/pure/__retain + drop + i32.const 0 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 0 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $30 + local.tee $31 i32.const 5 i32.const 2 i32.const 3 i32.const 992 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $31 + local.tee $32 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12216,28 +12454,36 @@ call $~lib/builtins/abort unreachable end - local.get $0 i32.const 5 i32.const 2 i32.const 3 i32.const 1032 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $32 - call $~lib/rt/pure/__retainRelease - local.tee $0 + local.tee $33 + local.tee $1 + local.get $0 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/rt/pure/__release + end + local.get $1 i32.const 1 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $33 + local.tee $34 i32.const 5 i32.const 2 i32.const 3 i32.const 1072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $34 + local.tee $35 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12249,28 +12495,36 @@ call $~lib/builtins/abort unreachable end - local.get $0 i32.const 5 i32.const 2 i32.const 3 i32.const 1112 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $35 - call $~lib/rt/pure/__retainRelease + local.tee $36 local.tee $0 + local.get $1 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $36 + local.tee $7 i32.const 5 i32.const 2 i32.const 3 i32.const 1152 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12283,27 +12537,36 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 i32.const 1192 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 - call $~lib/rt/pure/__retainRelease + local.tee $15 local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $15 + local.tee $16 i32.const 5 i32.const 2 i32.const 3 i32.const 1232 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $16 + local.tee $17 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12316,27 +12579,36 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 i32.const 1272 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 - call $~lib/rt/pure/__retainRelease + local.tee $18 local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $18 + local.tee $19 i32.const 5 i32.const 2 i32.const 3 i32.const 1312 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $19 + local.tee $20 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12349,27 +12621,36 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 i32.const 1352 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 - call $~lib/rt/pure/__retainRelease + local.tee $21 local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $21 + local.tee $22 i32.const 5 i32.const 2 i32.const 3 i32.const 1392 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $23 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12382,27 +12663,36 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 i32.const 1432 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 - call $~lib/rt/pure/__retainRelease + local.tee $24 local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $24 + local.tee $28 i32.const 5 i32.const 2 i32.const 3 i32.const 1472 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $28 + local.tee $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12415,27 +12705,36 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 i32.const 1512 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 - call $~lib/rt/pure/__retainRelease + local.tee $11 local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $11 + local.tee $12 i32.const 5 i32.const 2 i32.const 3 i32.const 1552 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $12 + local.tee $13 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12448,27 +12747,36 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 i32.const 1592 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 - call $~lib/rt/pure/__retainRelease + local.tee $14 local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $14 + local.tee $25 i32.const 5 i32.const 2 i32.const 3 i32.const 1632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $25 + local.tee $26 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12481,27 +12789,36 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 i32.const 1672 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $26 - call $~lib/rt/pure/__retainRelease + local.tee $8 local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.tee $8 + local.tee $27 i32.const 5 i32.const 2 i32.const 3 i32.const 1712 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 + local.tee $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12514,27 +12831,36 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 i32.const 1752 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 - call $~lib/rt/pure/__retainRelease + local.tee $4 local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $6 + local.tee $5 i32.const 5 i32.const 2 i32.const 3 i32.const 1792 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12547,27 +12873,36 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 i32.const 1832 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 - call $~lib/rt/pure/__retainRelease - local.tee $1 + local.tee $2 + local.tee $29 + i32.ne + if + local.get $29 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $29 i32.const -4 i32.const -3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $3 + local.tee $0 i32.const 5 i32.const 2 i32.const 3 i32.const 1872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12579,8 +12914,6 @@ call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/rt/pure/__release local.get $29 call $~lib/rt/pure/__release local.get $30 @@ -12641,18 +12974,20 @@ call $~lib/rt/pure/__release local.get $27 call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $3 + local.get $6 + call $~lib/rt/pure/__release + local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release global.get $std/array/arr i32.const 42 call $~lib/array/Array#unshift @@ -13470,8 +13805,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $42 - call $~lib/rt/pure/__retainRelease - local.tee $0 + local.tee $1 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/rt/pure/__release + end + local.get $1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice @@ -13494,7 +13837,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 i32.const 2 i32.const 3 @@ -13513,7 +13856,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 2 i32.const 3 @@ -13521,8 +13864,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $46 - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 2 i32.const 2 call $~lib/array/Array#splice @@ -13565,6 +13916,8 @@ unreachable end local.get $0 + local.set $1 + local.get $1 i32.const 5 i32.const 2 i32.const 3 @@ -13572,8 +13925,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $50 - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 0 i32.const 1 call $~lib/array/Array#splice @@ -13616,6 +13977,7 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 @@ -13623,8 +13985,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $30 - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice @@ -13667,6 +14037,7 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 @@ -13674,8 +14045,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $34 - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#splice @@ -13718,6 +14097,7 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 @@ -13725,8 +14105,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $10 - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const -2 i32.const 1 call $~lib/array/Array#splice @@ -13769,6 +14157,7 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 @@ -13776,8 +14165,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $18 - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const -7 i32.const 1 call $~lib/array/Array#splice @@ -13820,6 +14217,7 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 @@ -13827,8 +14225,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $22 - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const -2 i32.const -1 call $~lib/array/Array#splice @@ -13871,6 +14277,7 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 @@ -13878,8 +14285,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $9 - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 1 i32.const -2 call $~lib/array/Array#splice @@ -13922,6 +14337,7 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 @@ -13929,8 +14345,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $14 - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 4 i32.const 0 call $~lib/array/Array#splice @@ -13973,6 +14397,7 @@ unreachable end local.get $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 @@ -13980,19 +14405,27 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $27 - call $~lib/rt/pure/__retainRelease local.tee $0 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.tee $2 + local.tee $3 i32.const 0 i32.const 2 i32.const 3 i32.const 3008 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14011,7 +14444,7 @@ i32.const 3024 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $5 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14023,27 +14456,36 @@ call $~lib/builtins/abort unreachable end - local.get $0 i32.const 5 i32.const 2 i32.const 3 i32.const 3064 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 - call $~lib/rt/pure/__retainRelease + local.tee $6 local.tee $37 + local.get $0 + local.tee $1 + i32.ne + if + local.get $37 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $37 i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.tee $1 + local.tee $2 i32.const 0 i32.const 2 i32.const 3 i32.const 3104 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14062,7 +14504,7 @@ i32.const 3120 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14166,20 +14608,20 @@ call $~lib/rt/pure/__release local.get $27 call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $1 + local.get $6 call $~lib/rt/pure/__release - local.get $3 + local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release global.get $std/array/arr i32.const 0 i32.const 0 @@ -14652,19 +15094,19 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $repeat|0 - local.get $1 + local.get $2 i32.const 100 i32.lt_s if global.get $std/array/arr call $~lib/array/Array#pop drop - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $repeat|0 end end @@ -14682,7 +15124,7 @@ call $~lib/array/Array#push global.get $std/array/arr call $~lib/array/Array#map - local.tee $0 + local.tee $1 i32.load offset=12 i32.const 4 i32.ne @@ -14694,7 +15136,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get global.get $std/array/arr @@ -14803,12 +15245,12 @@ global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - local.get $0 + local.get $1 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 26 call $~lib/array/Array#filter - local.tee $0 + local.tee $1 i32.load offset=12 i32.const 2 i32.ne @@ -14913,7 +15355,7 @@ global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - local.get $0 + local.get $1 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 30 @@ -15234,7 +15676,7 @@ i32.const 0 global.set $~lib/argc i32.const 0 - local.set $1 + local.set $2 block $1of1 block $0of1 block $outOfRange @@ -15244,10 +15686,10 @@ unreachable end i32.const 44 - local.set $1 + local.set $2 end local.get $10 - local.get $1 + local.get $2 call $~lib/array/Array#sort call $~lib/rt/pure/__release local.get $10 @@ -15280,7 +15722,7 @@ i32.const 0 global.set $~lib/argc i32.const 0 - local.set $1 + local.set $2 block $1of139 block $0of140 block $outOfRange41 @@ -15290,10 +15732,10 @@ unreachable end i32.const 45 - local.set $1 + local.set $2 end local.get $15 - local.get $1 + local.get $2 call $~lib/array/Array#sort call $~lib/rt/pure/__release local.get $15 @@ -15326,7 +15768,7 @@ i32.const 0 global.set $~lib/argc i32.const 0 - local.set $1 + local.set $2 block $1of142 block $0of143 block $outOfRange44 @@ -15336,10 +15778,10 @@ unreachable end i32.const 46 - local.set $1 + local.set $2 end local.get $16 - local.get $1 + local.get $2 call $~lib/array/Array#sort call $~lib/rt/pure/__release local.get $16 @@ -15373,7 +15815,7 @@ i32.const 0 global.set $~lib/argc i32.const 0 - local.set $6 + local.set $4 block $1of145 block $0of146 block $outOfRange47 @@ -15383,10 +15825,10 @@ unreachable end i32.const 47 - local.set $6 + local.set $4 end local.get $17 - local.get $6 + local.get $4 call $~lib/array/Array#sort call $~lib/rt/pure/__release local.get $17 @@ -15414,7 +15856,7 @@ i32.const 3808 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $3 call $~lib/rt/pure/__retain local.set $28 i32.const 1 @@ -15423,7 +15865,7 @@ i32.const 3824 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $4 call $~lib/rt/pure/__retain local.set $18 i32.const 2 @@ -15432,7 +15874,7 @@ i32.const 3848 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $5 call $~lib/rt/pure/__retain local.set $19 i32.const 4 @@ -15441,7 +15883,7 @@ i32.const 3872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $6 call $~lib/rt/pure/__retain local.set $20 i32.const 4 @@ -15450,7 +15892,7 @@ i32.const 3904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $2 call $~lib/rt/pure/__retain local.set $7 i32.const 64 @@ -15479,7 +15921,7 @@ i32.const 3992 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15500,7 +15942,7 @@ i32.const 4016 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15613,23 +16055,23 @@ call $~lib/rt/pure/__release local.get $27 call $~lib/rt/pure/__release - local.get $2 + local.get $3 call $~lib/rt/pure/__release local.get $28 call $~lib/rt/pure/__release - local.get $6 + local.get $4 call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $19 call $~lib/rt/pure/__release - local.get $5 + local.get $6 call $~lib/rt/pure/__release local.get $20 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release @@ -15643,43 +16085,43 @@ call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 64 call $std/array/createRandomOrderedArray - local.set $3 + local.set $0 i32.const 257 call $std/array/createRandomOrderedArray - local.set $0 - local.get $3 + local.set $1 + local.get $0 i32.const 49 call $std/array/assertSorted - local.get $3 + local.get $0 i32.const 50 call $std/array/assertSorted - local.get $0 + local.get $1 i32.const 51 call $std/array/assertSorted - local.get $0 + local.get $1 i32.const 52 call $std/array/assertSorted - local.get $3 - call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release call $std/array/createReverseOrderedNestedArray - local.tee $0 + local.tee $1 i32.const 53 call $std/array/assertSorted<~lib/array/Array> - local.get $0 + local.get $1 call $~lib/rt/pure/__release call $std/array/createReverseOrderedElementsArray - local.tee $0 + local.tee $1 i32.const 54 call $std/array/assertSorted<~lib/array/Array> - local.get $0 + local.get $1 call $~lib/rt/pure/__release i32.const 7 i32.const 2 @@ -15687,22 +16129,22 @@ i32.const 4264 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 call $~lib/rt/pure/__retain - local.set $4 + local.set $5 i32.const 7 i32.const 2 i32.const 13 i32.const 4312 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 call $~lib/rt/pure/__retain - local.set $5 + local.set $6 i32.const 1 global.set $~lib/argc i32.const 0 - local.set $1 + local.set $2 block $1of148 block $0of149 block $outOfRange50 @@ -15714,13 +16156,13 @@ unreachable end i32.const 55 - local.set $1 + local.set $2 end - local.get $4 - local.get $1 - call $std/array/assertSorted<~lib/string/String | null> - local.get $4 local.get $5 + local.get $2 + call $std/array/assertSorted<~lib/string/String | null> + local.get $5 + local.get $6 call $std/array/isArraysEqual<~lib/string/String | null> i32.eqz if @@ -15732,11 +16174,11 @@ unreachable end call $std/array/createRandomStringArray - local.set $1 + local.set $2 i32.const 1 global.set $~lib/argc i32.const 0 - local.set $6 + local.set $4 block $1of151 block $0of152 block $outOfRange53 @@ -15748,21 +16190,21 @@ unreachable end i32.const 56 - local.set $6 + local.set $4 end - local.get $1 - local.get $6 - call $std/array/assertSorted<~lib/array/Array> - local.get $3 - call $~lib/rt/pure/__release + local.get $2 local.get $4 - call $~lib/rt/pure/__release + call $std/array/assertSorted<~lib/array/Array> local.get $0 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release i32.const 2 i32.const 0 i32.const 15 @@ -15838,10 +16280,10 @@ i32.const 4720 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $3 i32.const 4744 call $~lib/array/Array#join - local.tee $6 + local.tee $4 i32.const 4768 call $~lib/string/String.__eq i32.eqz @@ -15886,10 +16328,10 @@ i32.const 6216 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $5 i32.const 4248 call $~lib/array/Array<~lib/string/String>#join - local.tee $5 + local.tee $6 i32.const 6192 call $~lib/string/String.__eq i32.eqz @@ -15906,23 +16348,23 @@ i32.const 19 i32.const 0 call $~lib/rt/__allocArray - local.tee $1 + local.tee $2 i32.load offset=4 - local.tee $0 + local.tee $1 call $std/array/Ref#constructor - local.tee $3 + local.tee $0 call $~lib/rt/pure/__retain i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/pure/__retain i32.store offset=4 - local.get $0 + local.get $1 call $std/array/Ref#constructor - local.tee $0 + local.tee $1 call $~lib/rt/pure/__retain i32.store offset=8 - local.get $1 + local.get $2 call $~lib/rt/pure/__retain local.set $14 i32.const 4512 @@ -15930,10 +16372,10 @@ drop local.get $14 call $~lib/array/Array#join_ref - local.set $1 + local.set $2 i32.const 4512 call $~lib/rt/pure/__release - local.get $1 + local.get $2 i32.const 6296 call $~lib/string/String.__eq i32.eqz @@ -15957,25 +16399,25 @@ call $~lib/rt/pure/__release local.get $27 call $~lib/rt/pure/__release - local.get $2 + local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $4 call $~lib/rt/pure/__release local.get $12 call $~lib/rt/pure/__release local.get $13 call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $3 + local.get $6 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release local.get $14 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release i32.const 0 i32.const 2 @@ -16081,10 +16523,10 @@ drop local.get $33 call $~lib/array/Array#join_int - local.set $2 + local.set $3 i32.const 4512 call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 6552 call $~lib/string/String.__eq i32.eqz @@ -16108,10 +16550,10 @@ drop local.get $34 call $~lib/array/Array#join_int - local.set $6 + local.set $4 i32.const 4512 call $~lib/rt/pure/__release - local.get $6 + local.get $4 i32.const 6608 call $~lib/string/String.__eq i32.eqz @@ -16135,10 +16577,10 @@ drop local.get $35 call $~lib/array/Array#join_int - local.set $4 + local.set $5 i32.const 4512 call $~lib/rt/pure/__release - local.get $4 + local.get $5 i32.const 6688 call $~lib/string/String.__eq i32.eqz @@ -16162,10 +16604,10 @@ drop local.get $36 call $~lib/array/Array#join_int - local.set $5 + local.set $6 i32.const 4512 call $~lib/rt/pure/__release - local.get $5 + local.get $6 i32.const 6800 call $~lib/string/String.__eq i32.eqz @@ -16224,9 +16666,9 @@ i32.const 10 i32.const 0 call $~lib/rt/__allocArray - local.tee $3 - i32.load offset=4 local.tee $0 + i32.load offset=4 + local.tee $1 i32.const 2 i32.const 2 i32.const 3 @@ -16236,7 +16678,7 @@ local.tee $12 call $~lib/rt/pure/__retain i32.store - local.get $0 + local.get $1 i32.const 2 i32.const 2 i32.const 3 @@ -16246,7 +16688,7 @@ local.tee $13 call $~lib/rt/pure/__retain i32.store offset=4 - local.get $3 + local.get $0 call $~lib/rt/pure/__retain local.set $7 i32.const 4512 @@ -16254,10 +16696,10 @@ drop local.get $7 call $~lib/array/Array<~lib/array/Array>#join_arr - local.set $1 + local.set $2 i32.const 4512 call $~lib/rt/pure/__release - local.get $1 + local.get $2 i32.const 7160 call $~lib/string/String.__eq i32.eqz @@ -16274,9 +16716,9 @@ i32.const 23 i32.const 0 call $~lib/rt/__allocArray - local.tee $3 - i32.load offset=4 local.tee $0 + i32.load offset=4 + local.tee $1 i32.const 2 i32.const 0 i32.const 6 @@ -16286,7 +16728,7 @@ local.tee $14 call $~lib/rt/pure/__retain i32.store - local.get $0 + local.get $1 i32.const 2 i32.const 0 i32.const 6 @@ -16296,7 +16738,7 @@ local.tee $25 call $~lib/rt/pure/__retain i32.store offset=4 - local.get $3 + local.get $0 call $~lib/rt/pure/__retain local.set $10 i32.const 4512 @@ -16304,10 +16746,10 @@ drop local.get $10 call $~lib/array/Array<~lib/array/Array>#join_arr - local.set $3 + local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $3 + local.get $0 i32.const 7160 call $~lib/string/String.__eq i32.eqz @@ -16332,7 +16774,7 @@ i32.const 24 i32.const 0 call $~lib/rt/__allocArray - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 1 i32.const 2 @@ -16344,7 +16786,7 @@ call $~lib/rt/pure/__retain i32.store local.get $8 - local.get $0 + local.get $1 call $~lib/rt/pure/__retain i32.store local.get $26 @@ -16355,10 +16797,10 @@ drop local.get $8 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr - local.set $0 + local.set $1 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 + local.get $1 i32.const 6192 call $~lib/string/String.__eq i32.eqz @@ -16396,19 +16838,19 @@ call $~lib/rt/pure/__release local.get $33 call $~lib/rt/pure/__release - local.get $2 + local.get $3 call $~lib/rt/pure/__release local.get $34 call $~lib/rt/pure/__release - local.get $6 + local.get $4 call $~lib/rt/pure/__release local.get $35 call $~lib/rt/pure/__release - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $36 call $~lib/rt/pure/__release - local.get $5 + local.get $6 call $~lib/rt/pure/__release local.get $23 call $~lib/rt/pure/__release @@ -16424,17 +16866,17 @@ call $~lib/rt/pure/__release local.get $13 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release local.get $14 call $~lib/rt/pure/__release local.get $25 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release local.get $27 call $~lib/rt/pure/__release - local.get $0 + local.get $1 call $~lib/rt/pure/__release global.get $std/array/arr call $~lib/rt/pure/__release @@ -16445,7 +16887,7 @@ local.get $8 call $~lib/rt/pure/__release ) - (func $std/array/main (; 206 ;) (type $FUNCSIG$v) + (func $std/array/main (; 204 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -16454,7 +16896,7 @@ global.set $~lib/started end ) - (func $~lib/rt/pure/__visit (; 207 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 205 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 7460 i32.lt_u @@ -16564,7 +17006,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 208 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 206 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -16595,7 +17037,7 @@ end end ) - (func $~lib/rt/__visit_members (; 209 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 207 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$27 @@ -16666,7 +17108,7 @@ call $~lib/rt/pure/__visit end ) - (func $null (; 210 ;) (type $FUNCSIG$v) + (func $null (; 208 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 3d84792d..32ab3190 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -3562,38 +3562,10 @@ local.get $0 global.set $~lib/rt/pure/CUR ) - (func $~lib/rt/pure/__retainRelease (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - i32.ne - if - global.get $~lib/heap/HEAP_BASE - local.set $2 - local.get $1 - local.get $2 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - local.get $2 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - end - local.get $1 - ) - (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 (; 31 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 i32.const 1073741808 local.get $2 @@ -3636,10 +3608,22 @@ local.get $0 end local.tee $4 - local.get $4 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release + end + local.get $5 + end i32.store local.get $0 local.get $3 @@ -3649,7 +3633,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 (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -3673,7 +3657,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> (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3691,7 +3675,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> (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3709,7 +3693,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 (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -3721,7 +3705,7 @@ end local.get $0 ) - (func $~lib/array/Array.isArray (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3739,7 +3723,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 (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -3757,7 +3741,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> (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3775,7 +3759,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 (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 if (result i32) local.get $0 @@ -3785,7 +3769,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> (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3803,7 +3787,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 (; 41 ;) (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) @@ -3841,7 +3825,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 (; 42 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4104,7 +4088,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 (; 43 ;) (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) @@ -4181,11 +4165,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 (; 44 ;) (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 (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4194,7 +4178,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 (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -4213,7 +4197,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 (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -4299,7 +4283,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 (; 48 ;) (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) @@ -4386,11 +4370,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 (; 49 ;) (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 (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4399,7 +4383,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 (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -4418,7 +4402,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 (; 52 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -4504,17 +4488,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 (; 53 ;) (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 (; 54 ;) (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 (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -4535,7 +4519,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 (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4668,7 +4652,7 @@ 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 (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -4708,7 +4692,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 (; 58 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4771,7 +4755,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 (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4798,7 +4782,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 (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4807,7 +4791,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 (; 61 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -4826,7 +4810,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 (; 62 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -4838,7 +4822,7 @@ if i32.const 872 i32.const 488 - i32.const 250 + i32.const 258 i32.const 20 call $~lib/builtins/abort unreachable @@ -4859,7 +4843,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 (; 63 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4894,7 +4878,7 @@ block i32.const 272 i32.const 488 - i32.const 197 + i32.const 205 i32.const 59 call $~lib/builtins/abort unreachable @@ -4936,19 +4920,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/rt/pure/__skippedRelease (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 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/pure/decrement - end - local.get $1 - ) - (func $~lib/array/Array#copyWithin (; 66 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#copyWithin (; 64 ;) (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) @@ -5136,7 +5108,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $std/array/isArraysEqual (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 65 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -5222,7 +5194,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#unshift (; 68 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#unshift (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5255,7 +5227,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#shift (; 69 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#shift (; 67 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5269,7 +5241,7 @@ if i32.const 872 i32.const 488 - i32.const 311 + i32.const 319 i32.const 20 call $~lib/builtins/abort unreachable @@ -5304,7 +5276,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#reverse (; 70 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#reverse (; 68 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5358,7 +5330,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#indexOf (; 71 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5427,7 +5399,7 @@ end i32.const -1 ) - (func $~lib/array/Array#includes (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 local.get $2 @@ -5435,7 +5407,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#splice (; 73 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 71 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5543,7 +5515,7 @@ i32.store offset=12 local.get $6 ) - (func $~lib/array/Array#__unchecked_set (; 74 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__unchecked_set (; 72 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -5553,7 +5525,7 @@ local.get $2 i32.store ) - (func $~lib/array/Array#__set (; 75 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 73 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -5579,7 +5551,7 @@ i32.store offset=12 end ) - (func $start:std/array~anonymous|0 (; 76 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|0 (; 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 @@ -5592,7 +5564,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#findIndex (; 77 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 75 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5649,7 +5621,7 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 78 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 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 @@ -5662,7 +5634,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|2 (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 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 @@ -5675,7 +5647,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|3 (; 80 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 78 ;) (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 @@ -5692,7 +5664,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|4 (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|4 (; 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 @@ -5705,7 +5677,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|5 (; 82 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 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 @@ -5721,7 +5693,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|6 (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 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 @@ -5734,7 +5706,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#every (; 84 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 82 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5794,7 +5766,7 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 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 @@ -5807,7 +5779,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|8 (; 86 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 84 ;) (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 @@ -5824,7 +5796,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|9 (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 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 @@ -5837,7 +5809,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|10 (; 88 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 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 @@ -5853,7 +5825,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|11 (; 89 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 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 @@ -5866,7 +5838,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#some (; 90 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 88 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5923,7 +5895,7 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 91 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 89 ;) (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 @@ -5936,7 +5908,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|13 (; 92 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 90 ;) (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 @@ -5953,7 +5925,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|14 (; 93 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 91 ;) (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 @@ -5966,7 +5938,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|15 (; 94 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 92 ;) (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 @@ -5982,7 +5954,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|16 (; 95 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 93 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -5993,7 +5965,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#forEach (; 96 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 94 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6043,7 +6015,7 @@ unreachable end ) - (func $start:std/array~anonymous|17 (; 97 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 95 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6058,7 +6030,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|18 (; 98 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|18 (; 96 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6069,7 +6041,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|19 (; 99 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 97 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6083,7 +6055,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|20 (; 100 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 98 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6203,7 +6175,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|21 (; 101 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 99 ;) (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 @@ -6215,7 +6187,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#map (; 102 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 100 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6287,11 +6259,11 @@ end local.get $3 ) - (func $~lib/array/Array#get:length (; 103 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 101 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 104 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__unchecked_get (; 102 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $0 i32.load offset=4 local.get $1 @@ -6300,7 +6272,7 @@ i32.add f32.load ) - (func $~lib/array/Array#__get (; 105 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 103 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=8 @@ -6319,7 +6291,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $start:std/array~anonymous|22 (; 106 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|22 (; 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 @@ -6338,7 +6310,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#map (; 107 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 105 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6409,7 +6381,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|23 (; 108 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 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 @@ -6424,7 +6396,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|24 (; 109 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 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 @@ -6442,7 +6414,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|25 (; 110 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 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 @@ -6455,7 +6427,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#filter (; 111 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 109 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6524,7 +6496,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|26 (; 112 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 110 ;) (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 @@ -6545,7 +6517,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|27 (; 113 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 111 ;) (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 @@ -6562,7 +6534,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|28 (; 114 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 112 ;) (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 @@ -6582,7 +6554,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|29 (; 115 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 113 ;) (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 @@ -6595,7 +6567,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduce (; 116 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 114 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6653,7 +6625,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|30 (; 117 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|30 (; 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 @@ -6666,7 +6638,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|31 (; 118 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|31 (; 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 @@ -6684,7 +6656,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduce (; 119 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 117 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6742,7 +6714,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|32 (; 120 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 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 @@ -6760,7 +6732,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|33 (; 121 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 119 ;) (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 @@ -6777,7 +6749,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|34 (; 122 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|34 (; 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 @@ -6790,7 +6762,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|35 (; 123 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 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 @@ -6806,7 +6778,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|36 (; 124 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|36 (; 122 ;) (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 @@ -6819,7 +6791,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduceRight (; 125 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 123 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -6864,7 +6836,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|37 (; 126 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|37 (; 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 @@ -6877,7 +6849,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|38 (; 127 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|38 (; 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 @@ -6895,7 +6867,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduceRight (; 128 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 126 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -6940,7 +6912,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|39 (; 129 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|39 (; 127 ;) (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 @@ -6958,7 +6930,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|40 (; 130 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|40 (; 128 ;) (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 @@ -6975,7 +6947,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|41 (; 131 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|41 (; 129 ;) (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 @@ -6988,7 +6960,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|42 (; 132 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|42 (; 130 ;) (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 @@ -7004,7 +6976,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/math/murmurHash3 (; 133 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 131 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -7033,7 +7005,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 134 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 132 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -7068,7 +7040,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 135 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 133 ;) (type $FUNCSIG$vj) (param $0 i64) local.get $0 i64.eqz if @@ -7097,7 +7069,7 @@ call $~lib/math/splitMix32 global.set $~lib/math/random_state1_32 ) - (func $~lib/util/sort/insertionSort (; 136 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 134 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f32) (local $5 i32) @@ -7189,7 +7161,7 @@ unreachable end ) - (func $~lib/rt/tlsf/__free (; 137 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/tlsf/__free (; 135 ;) (type $FUNCSIG$vi) (param $0 i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -7226,7 +7198,7 @@ i32.sub call $~lib/rt/tlsf/freeBlock ) - (func $~lib/util/sort/weakHeapSort (; 138 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 136 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7521,7 +7493,7 @@ local.get $10 f32.store ) - (func $~lib/array/Array#sort (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 137 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -7600,7 +7572,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 140 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 138 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -7633,7 +7605,7 @@ i32.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 141 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -7652,12 +7624,12 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/builtins/isNaN (; 142 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/builtins/isNaN (; 140 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.ne ) - (func $std/array/isArraysEqual (; 143 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 141 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -7757,7 +7729,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/util/sort/insertionSort (; 144 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 142 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f64) (local $5 i32) @@ -7849,7 +7821,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 145 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 143 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8144,7 +8116,7 @@ local.get $10 f64.store ) - (func $~lib/array/Array#sort (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 144 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -8223,7 +8195,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 147 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 145 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -8256,7 +8228,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 148 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -8275,11 +8247,11 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/array/Array#get:length (; 149 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 147 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 150 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__unchecked_get (; 148 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $0 i32.load offset=4 local.get $1 @@ -8288,7 +8260,7 @@ i32.add f64.load ) - (func $~lib/array/Array#__get (; 151 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 149 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=8 @@ -8307,12 +8279,12 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $~lib/builtins/isNaN (; 152 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 150 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $std/array/isArraysEqual (; 153 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 151 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -8412,7 +8384,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/util/sort/insertionSort (; 154 ;) (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) @@ -8504,7 +8476,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 155 ;) (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) @@ -8799,7 +8771,7 @@ local.get $10 i32.store ) - (func $~lib/array/Array#sort (; 156 ;) (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) @@ -8876,12 +8848,12 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 157 ;) (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.sub ) - (func $~lib/array/Array#sort|trampoline (; 158 ;) (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 @@ -8900,7 +8872,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/util/sort/insertionSort (; 159 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 157 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8992,7 +8964,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 160 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 158 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9287,7 +9259,7 @@ local.get $10 i32.store ) - (func $~lib/array/Array#sort (; 161 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9364,7 +9336,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 162 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 160 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -9373,7 +9345,7 @@ i32.lt_u i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 163 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 161 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -9392,7 +9364,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/array/Array.create (; 164 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create (; 162 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 268435452 @@ -9423,7 +9395,7 @@ call $~lib/memory/memory.fill local.get $1 ) - (func $std/array/createReverseOrderedArray (; 165 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 163 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -9457,7 +9429,7 @@ end local.get $1 ) - (func $~lib/math/NativeMath.random (; 166 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 164 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -9514,7 +9486,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 167 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 165 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -9548,12 +9520,12 @@ end local.get $1 ) - (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 168 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 166 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $std/array/isSorted (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 167 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9613,7 +9585,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted (; 170 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 168 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -9638,7 +9610,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/array/assertSortedDefault (; 171 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSortedDefault (; 169 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain drop @@ -9651,27 +9623,27 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|43 (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|43 (; 170 ;) (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 (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 171 ;) (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 (; 174 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|45 (; 172 ;) (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 (; 175 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|46 (; 173 ;) (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> (; 176 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create<~lib/array/Array> (; 174 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 268435452 @@ -9702,8 +9674,9 @@ call $~lib/memory/memory.fill local.get $1 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 177 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 175 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + (local $4 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -9715,15 +9688,23 @@ i32.add local.set $3 local.get $3 - local.get $3 i32.load + local.set $4 local.get $2 - call $~lib/rt/pure/__retainRelease - i32.store + local.get $4 + i32.ne + if + local.get $3 + local.get $2 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + call $~lib/rt/pure/__release + end local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/array/Array>#__set (; 178 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__set (; 176 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -9771,7 +9752,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedNestedArray (; 179 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 177 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9815,7 +9796,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|47 (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -9837,7 +9818,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 181 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 179 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9937,7 +9918,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#sort (; 182 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#sort (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10012,11 +9993,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#get:length (; 183 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#get:length (; 181 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 184 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 182 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10026,7 +10007,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#__get (; 185 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__get (; 183 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -10057,7 +10038,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get ) - (func $std/array/isSorted<~lib/array/Array> (; 186 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/array/Array> (; 184 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10129,7 +10110,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $std/array/assertSorted<~lib/array/Array> (; 187 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/array/Array> (; 185 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10154,7 +10135,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array.create> (; 188 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create> (; 186 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 268435452 @@ -10185,7 +10166,7 @@ call $~lib/memory/memory.fill local.get $1 ) - (func $std/array/Proxy#constructor (; 189 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/Proxy#constructor (; 187 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -10200,8 +10181,9 @@ i32.store local.get $0 ) - (func $~lib/array/Array>#__unchecked_set (; 190 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__unchecked_set (; 188 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + (local $4 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -10213,15 +10195,23 @@ i32.add local.set $3 local.get $3 - local.get $3 i32.load + local.set $4 local.get $2 - call $~lib/rt/pure/__retainRelease - i32.store + local.get $4 + i32.ne + if + local.get $3 + local.get $2 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + call $~lib/rt/pure/__release + end local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array>#__set (; 191 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__set (; 189 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -10269,7 +10259,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedElementsArray (; 192 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 190 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10309,7 +10299,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|48 (; 193 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 191 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10329,7 +10319,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort> (; 194 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort> (; 192 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10429,7 +10419,7 @@ unreachable end ) - (func $~lib/array/Array>#sort (; 195 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 193 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10504,11 +10494,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array>#get:length (; 196 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#get:length (; 194 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array>#__unchecked_get (; 197 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__unchecked_get (; 195 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10518,7 +10508,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array>#__get (; 198 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__get (; 196 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -10549,7 +10539,7 @@ local.get $1 call $~lib/array/Array>#__unchecked_get ) - (func $std/array/isSorted> (; 199 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted> (; 197 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10621,7 +10611,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $std/array/assertSorted> (; 200 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 198 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10646,7 +10636,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 201 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 199 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10746,7 +10736,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String | null>#sort (; 202 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#sort (; 200 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10821,11 +10811,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String | null>#get:length (; 203 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#get:length (; 201 ;) (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 (; 204 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (; 202 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10835,7 +10825,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String | null>#__get (; 205 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__get (; 203 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -10854,7 +10844,7 @@ local.get $1 call $~lib/array/Array<~lib/string/String | null>#__unchecked_get ) - (func $std/array/isSorted<~lib/string/String | null> (; 206 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String | null> (; 204 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10926,7 +10916,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $std/array/assertSorted<~lib/string/String | null> (; 207 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null> (; 205 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10951,7 +10941,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String#get:length (; 208 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 206 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -10959,7 +10949,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 209 ;) (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 (; 207 ;) (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) @@ -11023,7 +11013,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 210 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 208 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11129,7 +11119,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 211 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 209 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -11150,7 +11140,7 @@ local.get $1 call $std/array/assertSorted<~lib/string/String | null> ) - (func $~lib/string/String.__eq (; 212 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 210 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -11223,7 +11213,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__ne (; 213 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 211 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11242,7 +11232,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/isArraysEqual<~lib/string/String | null> (; 214 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual<~lib/string/String | null> (; 212 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11340,7 +11330,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $~lib/array/Array.create<~lib/string/String> (; 215 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array.create<~lib/string/String> (; 213 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 268435452 @@ -11371,7 +11361,7 @@ call $~lib/memory/memory.fill local.get $1 ) - (func $~lib/string/String#charAt (; 216 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#charAt (; 214 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 i32.const 0 @@ -11409,12 +11399,13 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#concat (; 217 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 215 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -11422,59 +11413,71 @@ i32.const 0 i32.eq if - local.get $1 - i32.const 4408 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 4408 + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $2 + end local.set $1 end local.get $0 call $~lib/string/String#get:length i32.const 1 i32.shl - local.set $2 + local.set $4 local.get $1 call $~lib/string/String#get:length i32.const 1 i32.shl - local.set $3 - local.get $2 - local.get $3 - i32.add - local.set $4 + local.set $5 local.get $4 + local.get $5 + i32.add + local.set $6 + local.get $6 i32.const 0 i32.eq if i32.const 4248 call $~lib/rt/pure/__retain - local.set $5 + local.set $2 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $2 return end - local.get $4 + local.get $6 i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $6 - local.get $6 + local.set $7 + local.get $7 local.get $0 - local.get $2 + local.get $4 call $~lib/memory/memory.copy - local.get $6 - local.get $2 + local.get $7 + local.get $4 i32.add local.get $1 - local.get $3 + local.get $5 call $~lib/memory/memory.copy - local.get $6 - local.set $5 + local.get $7 + local.set $2 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $2 ) - (func $~lib/string/String.__concat (; 218 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 216 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11497,12 +11500,14 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/createRandomString (; 219 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 217 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f64) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) i32.const 4248 call $~lib/rt/pure/__retain local.set $1 @@ -11515,25 +11520,37 @@ i32.lt_s i32.eqz br_if $break|0 - local.get $1 - local.get $1 - global.get $std/array/charset - block $~lib/math/NativeMath.floor|inlined.0 (result f64) - call $~lib/math/NativeMath.random + block (result i32) + local.get $1 global.get $std/array/charset - call $~lib/string/String#get:length - f64.convert_i32_s - f64.mul - local.set $3 - local.get $3 - f64.floor + block $~lib/math/NativeMath.floor|inlined.0 (result f64) + call $~lib/math/NativeMath.random + global.get $std/array/charset + call $~lib/string/String#get:length + f64.convert_i32_s + f64.mul + local.set $3 + local.get $3 + f64.floor + end + i32.trunc_f64_s + call $~lib/string/String#charAt + local.tee $4 + call $~lib/string/String.__concat + local.tee $5 + local.tee $6 + local.get $1 + local.tee $7 + i32.ne + if + local.get $6 + call $~lib/rt/pure/__retain + drop + local.get $7 + call $~lib/rt/pure/__release + end + local.get $6 end - i32.trunc_f64_s - call $~lib/string/String#charAt - local.tee $4 - call $~lib/string/String.__concat - local.tee $5 - call $~lib/rt/pure/__retainRelease local.set $1 local.get $4 call $~lib/rt/pure/__release @@ -11550,8 +11567,9 @@ end local.get $1 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 220 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 218 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + (local $4 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -11563,15 +11581,23 @@ i32.add local.set $3 local.get $3 - local.get $3 i32.load + local.set $4 local.get $2 - call $~lib/rt/pure/__retainRelease - i32.store + local.get $4 + i32.ne + if + local.get $3 + local.get $2 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + call $~lib/rt/pure/__release + end local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/string/String>#__set (; 221 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__set (; 219 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -11619,7 +11645,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createRandomStringArray (; 222 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomStringArray (; 220 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11657,7 +11683,7 @@ end local.get $1 ) - (func $~lib/util/sort/insertionSort<~lib/string/String> (; 223 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String> (; 221 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11757,7 +11783,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String>#sort (; 224 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#sort (; 222 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11832,11 +11858,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#get:length (; 225 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (; 223 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 224 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -11846,7 +11872,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#__get (; 227 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 225 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -11877,7 +11903,7 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get ) - (func $std/array/isSorted<~lib/string/String> (; 228 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String> (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11949,7 +11975,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $std/array/assertSorted<~lib/string/String> (; 229 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String> (; 227 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11974,7 +12000,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 230 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 228 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12080,7 +12106,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/assertSorted<~lib/string/String>|trampoline (; 231 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String>|trampoline (; 229 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -12101,7 +12127,7 @@ local.get $1 call $std/array/assertSorted<~lib/string/String> ) - (func $~lib/string/String#substring (; 232 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 230 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12220,7 +12246,7 @@ local.get $10 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#join_bool (; 233 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_bool (; 231 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12405,7 +12431,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 234 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 232 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -12419,7 +12445,7 @@ local.get $2 return ) - (func $~lib/util/number/decimalCount32 (; 235 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 233 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -12488,7 +12514,7 @@ unreachable unreachable ) - (func $~lib/util/number/utoa32_lut (; 236 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 234 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12629,7 +12655,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 237 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 235 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12686,12 +12712,12 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 238 ;) (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/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 239 ;) (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) @@ -12750,7 +12776,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 240 ;) (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) @@ -12904,7 +12930,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 241 ;) (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 @@ -12918,7 +12944,7 @@ local.get $2 return ) - (func $~lib/util/number/utoa32 (; 242 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 240 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12955,12 +12981,12 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 243 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 241 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 244 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 242 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12999,7 +13025,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 245 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 243 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13153,7 +13179,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 246 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 244 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -13167,14 +13193,14 @@ local.get $2 return ) - (func $~lib/builtins/isFinite (; 247 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isFinite (; 245 ;) (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 (; 248 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 246 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -13183,7 +13209,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 249 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 247 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -13192,7 +13218,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 250 ;) (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 (; 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) (local $7 i32) (local $8 i64) (local $9 i64) @@ -13748,7 +13774,7 @@ end local.get $15 ) - (func $~lib/util/number/prettify (; 251 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 249 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -14078,7 +14104,7 @@ unreachable unreachable ) - (func $~lib/util/number/dtoa_core (; 252 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 250 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 f64) (local $4 i32) @@ -14516,7 +14542,7 @@ local.get $2 i32.add ) - (func $~lib/util/number/dtoa (; 253 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 251 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14575,7 +14601,7 @@ call $~lib/rt/tlsf/__free local.get $3 ) - (func $~lib/util/number/dtoa_stream (; 254 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 252 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -14646,7 +14672,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array#join_flt (; 255 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_flt (; 253 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14800,7 +14826,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 256 ;) (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 @@ -14814,7 +14840,7 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/string/String>#join_str (; 257 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join_str (; 255 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14824,6 +14850,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -14881,14 +14909,26 @@ i32.lt_s i32.eqz br_if $break|0 - local.get $7 - local.get $4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $7 + local.tee $10 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $9 + end local.set $7 local.get $7 i32.const 0 @@ -14910,7 +14950,7 @@ unreachable end i32.const 0 - local.set $9 + local.set $11 local.get $6 local.get $5 local.get $2 @@ -14921,7 +14961,7 @@ i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $10 + local.set $12 block $break|1 i32.const 0 local.set $8 @@ -14931,14 +14971,26 @@ i32.lt_s i32.eqz br_if $break|1 - local.get $7 - local.get $4 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $10 + end local.set $7 local.get $7 i32.const 0 @@ -14946,26 +14998,26 @@ if local.get $7 call $~lib/string/String#get:length - local.set $3 - local.get $10 - local.get $9 + local.set $10 + local.get $12 + local.get $11 i32.const 1 i32.shl i32.add local.get $7 - local.get $3 + local.get $10 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $3 + local.get $11 + local.get $10 i32.add - local.set $9 + local.set $11 end local.get $5 if - local.get $10 - local.get $9 + local.get $12 + local.get $11 i32.const 1 i32.shl i32.add @@ -14974,10 +15026,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 + local.get $11 local.get $5 i32.add - local.set $9 + local.set $11 end local.get $8 i32.const 1 @@ -14988,21 +15040,33 @@ end unreachable end - local.get $7 - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $7 + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end local.set $7 local.get $7 i32.const 0 i32.ne if - local.get $10 - local.get $9 + local.get $12 + local.get $11 i32.const 1 i32.shl i32.add @@ -15013,15 +15077,15 @@ i32.shl call $~lib/memory/memory.copy end - local.get $10 - local.set $8 + local.get $12 + local.set $9 local.get $1 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $9 ) - (func $~lib/array/Array<~lib/string/String>#join (; 258 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join (; 256 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -15035,7 +15099,7 @@ local.get $2 return ) - (func $std/array/Ref#constructor (; 259 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/Ref#constructor (; 257 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -15047,7 +15111,7 @@ end local.get $0 ) - (func $~lib/array/Array#join_ref (; 260 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_ref (; 258 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15056,6 +15120,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -15121,14 +15187,26 @@ i32.lt_s i32.eqz br_if $break|0 - local.get $9 - local.get $4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $9 + local.tee $11 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $11 + call $~lib/rt/pure/__release + end + local.get $10 + end local.set $9 local.get $9 if @@ -15221,7 +15299,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 261 ;) (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 @@ -15235,12 +15313,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 262 ;) (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 (; 263 ;) (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 24 i32.shl @@ -15249,7 +15327,7 @@ call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 264 ;) (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) @@ -15324,7 +15402,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 265 ;) (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) @@ -15478,7 +15556,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 266 ;) (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 @@ -15492,19 +15570,19 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 267 ;) (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/itoa (; 268 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 266 ;) (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 (; 269 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 267 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15549,7 +15627,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 270 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 268 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15703,7 +15781,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 271 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 269 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -15717,12 +15795,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 272 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 270 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/decimalCount64 (; 273 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 271 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -15791,7 +15869,7 @@ unreachable unreachable ) - (func $~lib/util/number/utoa64_lut (; 274 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 272 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -15917,7 +15995,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 275 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 273 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -15986,12 +16064,12 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 276 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 274 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/utoa64 return ) - (func $~lib/util/number/itoa_stream (; 277 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 275 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16056,7 +16134,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 278 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 276 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16210,7 +16288,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 279 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 277 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -16224,12 +16302,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 280 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 278 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa64 (; 281 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 279 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16320,12 +16398,12 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 282 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 280 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/itoa64 return ) - (func $~lib/util/number/itoa_stream (; 283 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 281 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16412,7 +16490,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 284 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 282 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16566,7 +16644,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 285 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 283 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -16580,12 +16658,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 286 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 284 ;) (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 (; 287 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join_str (; 285 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16595,6 +16673,8 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) + (local $12 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -16652,14 +16732,26 @@ i32.lt_s i32.eqz br_if $break|0 - local.get $7 - local.get $4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $7 + local.tee $10 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $9 + end local.set $7 local.get $7 i32.const 0 @@ -16681,7 +16773,7 @@ unreachable end i32.const 0 - local.set $9 + local.set $11 local.get $6 local.get $5 local.get $2 @@ -16692,7 +16784,7 @@ i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $10 + local.set $12 block $break|1 i32.const 0 local.set $8 @@ -16702,14 +16794,26 @@ i32.lt_s i32.eqz br_if $break|1 - local.get $7 - local.get $4 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $10 + end local.set $7 local.get $7 i32.const 0 @@ -16717,26 +16821,26 @@ if local.get $7 call $~lib/string/String#get:length - local.set $3 - local.get $10 - local.get $9 + local.set $10 + local.get $12 + local.get $11 i32.const 1 i32.shl i32.add local.get $7 - local.get $3 + local.get $10 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $3 + local.get $11 + local.get $10 i32.add - local.set $9 + local.set $11 end local.get $5 if - local.get $10 - local.get $9 + local.get $12 + local.get $11 i32.const 1 i32.shl i32.add @@ -16745,10 +16849,10 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $9 + local.get $11 local.get $5 i32.add - local.set $9 + local.set $11 end local.get $8 i32.const 1 @@ -16759,21 +16863,33 @@ end unreachable end - local.get $7 - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $7 + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end local.set $7 local.get $7 i32.const 0 i32.ne if - local.get $10 - local.get $9 + local.get $12 + local.get $11 i32.const 1 i32.shl i32.add @@ -16784,15 +16900,15 @@ i32.shl call $~lib/memory/memory.copy end - local.get $10 - local.set $8 + local.get $12 + local.set $9 local.get $1 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $9 ) - (func $~lib/array/Array<~lib/string/String | null>#join (; 288 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join (; 286 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -16806,17 +16922,17 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/string/String | null>#toString (; 289 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#toString (; 287 ;) (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 (; 290 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#toString (; 288 ;) (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 (; 291 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 289 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16825,6 +16941,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -16859,10 +16977,22 @@ local.get $2 i32.eqz if - local.get $7 - local.get $6 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + i32.load + local.tee $3 + local.get $7 + local.tee $8 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $3 + end local.set $7 local.get $7 if (result i32) @@ -16892,26 +17022,50 @@ i32.lt_s i32.eqz br_if $break|0 - local.get $7 - local.get $6 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + local.get $7 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 + end local.set $7 local.get $7 if - local.get $4 - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $8 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $8 + call $~lib/string/String.__concat + local.tee $9 + local.tee $10 + local.get $4 + local.tee $11 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $11 + call $~lib/rt/pure/__release + end + local.get $10 + end local.set $4 local.get $8 call $~lib/rt/pure/__release @@ -16920,12 +17074,24 @@ end local.get $5 if - local.get $4 - local.get $4 - local.get $1 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $1 + call $~lib/string/String.__concat + local.tee $9 + local.tee $11 + local.get $4 + local.tee $8 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $11 + end local.set $4 local.get $9 call $~lib/rt/pure/__release @@ -16939,41 +17105,65 @@ end unreachable end - local.get $7 - local.get $6 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $10 + end local.set $7 local.get $7 if - local.get $4 - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $3 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $10 + call $~lib/string/String.__concat + local.tee $3 + local.tee $8 + local.get $4 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 + end local.set $4 - local.get $3 + local.get $10 call $~lib/rt/pure/__release - local.get $9 + local.get $3 call $~lib/rt/pure/__release end local.get $4 - local.set $9 + local.set $3 local.get $1 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $9 + local.get $3 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 292 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~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 @@ -16987,19 +17177,19 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 293 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 291 ;) (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 (; 294 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 292 ;) (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 (; 295 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 293 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17044,7 +17234,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 296 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 294 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17198,7 +17388,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 297 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~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 @@ -17212,7 +17402,7 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 298 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~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) @@ -17221,6 +17411,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -17255,10 +17447,22 @@ local.get $2 i32.eqz if - local.get $7 - local.get $6 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + i32.load + local.tee $3 + local.get $7 + local.tee $8 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $3 + end local.set $7 local.get $7 if (result i32) @@ -17288,26 +17492,50 @@ i32.lt_s i32.eqz br_if $break|0 - local.get $7 - local.get $6 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + local.get $7 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 + end local.set $7 local.get $7 if - local.get $4 - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $8 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $8 + call $~lib/string/String.__concat + local.tee $9 + local.tee $10 + local.get $4 + local.tee $11 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $11 + call $~lib/rt/pure/__release + end + local.get $10 + end local.set $4 local.get $8 call $~lib/rt/pure/__release @@ -17316,12 +17544,24 @@ end local.get $5 if - local.get $4 - local.get $4 - local.get $1 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $1 + call $~lib/string/String.__concat + local.tee $9 + local.tee $11 + local.get $4 + local.tee $8 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $11 + end local.set $4 local.get $9 call $~lib/rt/pure/__release @@ -17335,41 +17575,65 @@ end unreachable end - local.get $7 - local.get $6 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $10 + end local.set $7 local.get $7 if - local.get $4 - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $3 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $10 + call $~lib/string/String.__concat + local.tee $3 + local.tee $8 + local.get $4 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 + end local.set $4 - local.get $3 + local.get $10 call $~lib/rt/pure/__release - local.get $9 + local.get $3 call $~lib/rt/pure/__release end local.get $4 - local.set $9 + local.set $3 local.get $1 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $9 + local.get $3 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 299 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~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 @@ -17383,12 +17647,12 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 300 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~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>#join ) - (func $~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>#join_arr (; 299 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17397,6 +17661,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -17431,10 +17697,22 @@ local.get $2 i32.eqz if - local.get $7 - local.get $6 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + i32.load + local.tee $3 + local.get $7 + local.tee $8 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $3 + end local.set $7 local.get $7 if (result i32) @@ -17464,26 +17742,50 @@ i32.lt_s i32.eqz br_if $break|0 - local.get $7 - local.get $6 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + local.get $7 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 + end local.set $7 local.get $7 if - local.get $4 - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $8 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $8 + call $~lib/string/String.__concat + local.tee $9 + local.tee $10 + local.get $4 + local.tee $11 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $11 + call $~lib/rt/pure/__release + end + local.get $10 + end local.set $4 local.get $8 call $~lib/rt/pure/__release @@ -17492,12 +17794,24 @@ end local.get $5 if - local.get $4 - local.get $4 - local.get $1 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $1 + call $~lib/string/String.__concat + local.tee $9 + local.tee $11 + local.get $4 + local.tee $8 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $11 + end local.set $4 local.get $9 call $~lib/rt/pure/__release @@ -17511,41 +17825,65 @@ end unreachable end - local.get $7 - local.get $6 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $10 + end local.set $7 local.get $7 if - local.get $4 - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $3 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $10 + call $~lib/string/String.__concat + local.tee $3 + local.tee $8 + local.get $4 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 + end local.set $4 - local.get $3 + local.get $10 call $~lib/rt/pure/__release - local.get $9 + local.get $3 call $~lib/rt/pure/__release end local.get $4 - local.set $9 + local.set $3 local.get $1 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $9 + local.get $3 ) - (func $~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>#join (; 300 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -17559,7 +17897,7 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 303 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 301 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17568,6 +17906,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -17602,10 +17942,22 @@ local.get $2 i32.eqz if - local.get $7 - local.get $6 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + i32.load + local.tee $3 + local.get $7 + local.tee $8 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $3 + end local.set $7 local.get $7 if (result i32) @@ -17635,26 +17987,50 @@ i32.lt_s i32.eqz br_if $break|0 - local.get $7 - local.get $6 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + local.get $7 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 + end local.set $7 local.get $7 if - local.get $4 - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#join - local.tee $8 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#join + local.tee $8 + call $~lib/string/String.__concat + local.tee $9 + local.tee $10 + local.get $4 + local.tee $11 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $11 + call $~lib/rt/pure/__release + end + local.get $10 + end local.set $4 local.get $8 call $~lib/rt/pure/__release @@ -17663,12 +18039,24 @@ end local.get $5 if - local.get $4 - local.get $4 - local.get $1 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $1 + call $~lib/string/String.__concat + local.tee $9 + local.tee $11 + local.get $4 + local.tee $8 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $11 + end local.set $4 local.get $9 call $~lib/rt/pure/__release @@ -17682,41 +18070,65 @@ end unreachable end - local.get $7 - local.get $6 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $10 + end local.set $7 local.get $7 if - local.get $4 - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#join - local.tee $3 - call $~lib/string/String.__concat - local.tee $9 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#join + local.tee $10 + call $~lib/string/String.__concat + local.tee $3 + local.tee $8 + local.get $4 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 + end local.set $4 - local.get $3 + local.get $10 call $~lib/rt/pure/__release - local.get $9 + local.get $3 call $~lib/rt/pure/__release end local.get $4 - local.set $9 + local.set $3 local.get $1 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $9 + local.get $3 ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 304 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 302 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -17730,12 +18142,12 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 305 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 303 ;) (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 (; 306 ;) (type $FUNCSIG$v) + (func $start:std/array (; 304 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -18594,11 +19006,15 @@ i32.const 47 call $~lib/array/Array#push drop - local.get $0 - global.get $std/array/arr - local.get $2 - call $~lib/array/Array#concat - call $~lib/rt/pure/__skippedRelease + block (result i32) + global.get $std/array/arr + local.get $2 + call $~lib/array/Array#concat + local.set $5 + local.get $0 + call $~lib/rt/pure/__release + local.get $5 + end local.set $0 global.get $std/array/arr call $std/array/internalCapacity @@ -18725,11 +19141,15 @@ call $~lib/builtins/abort unreachable end - local.get $0 - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#concat - call $~lib/rt/pure/__skippedRelease + block (result i32) + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#concat + local.set $6 + local.get $0 + call $~lib/rt/pure/__release + local.get $6 + end local.set $0 local.get $0 call $~lib/array/Array#get:length @@ -18764,10 +19184,10 @@ i32.const 936 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $5 call $~lib/rt/pure/__retain - local.set $1 - local.get $1 + local.set $6 + local.get $6 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -18780,11 +19200,15 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 - global.get $std/array/arr - call $~lib/array/Array#concat - call $~lib/rt/pure/__skippedRelease + block (result i32) + local.get $6 + global.get $std/array/arr + call $~lib/array/Array#concat + local.set $7 + local.get $0 + call $~lib/rt/pure/__release + local.get $7 + end local.set $0 local.get $0 call $~lib/array/Array#get:length @@ -18799,7 +19223,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $6 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -18818,25 +19242,37 @@ call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $4 + local.get $5 call $~lib/rt/pure/__release - local.get $1 + local.get $6 call $~lib/rt/pure/__release end block i32.const 0 - local.set $1 - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 952 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + local.set $6 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 952 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + local.tee $4 + local.get $6 + local.tee $5 + i32.ne + if + local.get $4 + call $~lib/rt/pure/__retain + drop + local.get $5 + call $~lib/rt/pure/__release + end + local.get $4 + end + local.set $6 + local.get $6 i32.const 0 i32.const 3 global.get $~lib/builtins/i32.MAX_VALUE @@ -18848,7 +19284,7 @@ i32.const 992 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18860,29 +19296,41 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1032 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1032 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + local.tee $1 + local.get $6 + local.tee $5 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $5 + call $~lib/rt/pure/__release + end + local.get $1 + end + local.set $6 + local.get $6 i32.const 1 i32.const 3 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.tee $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 i32.const 1072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18894,22 +19342,34 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1112 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1112 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + local.tee $5 + local.get $6 + local.tee $9 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $5 + end + local.set $6 + local.get $6 i32.const 1 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.tee $6 + local.tee $5 i32.const 5 i32.const 2 i32.const 3 @@ -18928,17 +19388,29 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1192 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $11 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1192 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $11 + local.tee $9 + local.get $6 + local.tee $12 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $12 + call $~lib/rt/pure/__release + end + local.get $9 + end + local.set $6 + local.get $6 i32.const 2 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE @@ -18962,17 +19434,29 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1272 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $14 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1272 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $14 + local.tee $12 + local.get $6 + local.tee $15 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $15 + call $~lib/rt/pure/__release + end + local.get $12 + end + local.set $6 + local.get $6 i32.const 0 i32.const 3 i32.const 4 @@ -18996,17 +19480,29 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1352 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $17 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1352 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $17 + local.tee $15 + local.get $6 + local.tee $18 + i32.ne + if + local.get $15 + call $~lib/rt/pure/__retain + drop + local.get $18 + call $~lib/rt/pure/__release + end + local.get $15 + end + local.set $6 + local.get $6 i32.const 1 i32.const 3 i32.const 4 @@ -19030,17 +19526,29 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1432 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $20 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1432 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $20 + local.tee $18 + local.get $6 + local.tee $21 + i32.ne + if + local.get $18 + call $~lib/rt/pure/__retain + drop + local.get $21 + call $~lib/rt/pure/__release + end + local.get $18 + end + local.set $6 + local.get $6 i32.const 1 i32.const 2 i32.const 4 @@ -19064,17 +19572,29 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1512 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $23 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1512 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $23 + local.tee $21 + local.get $6 + local.tee $24 + i32.ne + if + local.get $21 + call $~lib/rt/pure/__retain + drop + local.get $24 + call $~lib/rt/pure/__release + end + local.get $21 + end + local.set $6 + local.get $6 i32.const 0 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE @@ -19098,17 +19618,29 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1592 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $26 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1592 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $26 + local.tee $24 + local.get $6 + local.tee $27 + i32.ne + if + local.get $24 + call $~lib/rt/pure/__retain + drop + local.get $27 + call $~lib/rt/pure/__release + end + local.get $24 + end + local.set $6 + local.get $6 i32.const 0 i32.const -2 i32.const -1 @@ -19132,17 +19664,29 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1672 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $29 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1672 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $29 + local.tee $27 + local.get $6 + local.tee $30 + i32.ne + if + local.get $27 + call $~lib/rt/pure/__retain + drop + local.get $30 + call $~lib/rt/pure/__release + end + local.get $27 + end + local.set $6 + local.get $6 i32.const -4 i32.const -3 i32.const -2 @@ -19166,17 +19710,29 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1752 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $32 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1752 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $32 + local.tee $30 + local.get $6 + local.tee $33 + i32.ne + if + local.get $30 + call $~lib/rt/pure/__retain + drop + local.get $33 + call $~lib/rt/pure/__release + end + local.get $30 + end + local.set $6 + local.get $6 i32.const -4 i32.const -3 i32.const -1 @@ -19200,17 +19756,29 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1832 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $35 - call $~lib/rt/pure/__retainRelease - local.set $1 - local.get $1 + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1832 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $35 + local.tee $33 + local.get $6 + local.tee $36 + i32.ne + if + local.get $33 + call $~lib/rt/pure/__retain + drop + local.get $36 + call $~lib/rt/pure/__release + end + local.get $33 + end + local.set $6 + local.get $6 i32.const -4 i32.const -3 global.get $~lib/builtins/i32.MAX_VALUE @@ -19234,23 +19802,23 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $6 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $6 + local.get $5 call $~lib/rt/pure/__release local.get $10 call $~lib/rt/pure/__release @@ -20215,28 +20783,40 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2008 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $31 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2008 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $31 + local.tee $36 + local.get $37 + local.tee $34 + i32.ne + if + local.get $36 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $36 + end local.set $37 local.get $37 i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice - local.tee $34 + local.tee $36 i32.const 3 i32.const 2 i32.const 3 i32.const 2048 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $29 + local.tee $27 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20255,7 +20835,7 @@ i32.const 2080 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $28 + local.tee $29 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20267,28 +20847,40 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2104 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $24 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2104 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $28 + local.tee $6 + local.get $37 + local.tee $34 + i32.ne + if + local.get $6 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $6 + end local.set $37 local.get $37 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.tee $27 + local.tee $6 i32.const 2 i32.const 2 i32.const 3 i32.const 2144 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $25 + local.tee $24 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20307,7 +20899,7 @@ i32.const 2168 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $21 + local.tee $26 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20319,28 +20911,40 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2200 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $23 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2200 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $25 + local.tee $3 + local.get $37 + local.tee $34 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $3 + end local.set $37 local.get $37 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.tee $26 + local.tee $3 i32.const 1 i32.const 2 i32.const 3 i32.const 2240 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $18 + local.tee $21 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20359,7 +20963,7 @@ i32.const 2264 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 + local.tee $23 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20371,28 +20975,40 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2296 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $19 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2296 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $22 + local.tee $4 + local.get $37 + local.tee $34 + i32.ne + if + local.get $4 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $4 + end local.set $37 local.get $37 i32.const -1 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice - local.tee $22 + local.tee $4 i32.const 1 i32.const 2 i32.const 3 i32.const 2336 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $18 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20411,7 +21027,7 @@ i32.const 2360 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $16 + local.tee $20 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20423,28 +21039,40 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2392 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $12 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2392 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $19 + local.tee $0 + local.get $37 + local.tee $34 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $0 + end local.set $37 local.get $37 i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice - local.tee $15 + local.tee $0 i32.const 2 i32.const 2 i32.const 3 i32.const 2432 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $15 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20463,7 +21091,7 @@ i32.const 2456 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $17 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20475,28 +21103,40 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2488 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $11 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2488 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $16 + local.tee $2 + local.get $37 + local.tee $34 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $2 + end local.set $37 local.get $37 i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.tee $14 + local.tee $2 i32.const 1 i32.const 2 i32.const 3 i32.const 2528 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $12 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20515,7 +21155,7 @@ i32.const 2552 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $14 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20527,28 +21167,40 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2584 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2584 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $13 + local.tee $1 + local.get $37 + local.tee $34 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $1 + end local.set $37 local.get $37 i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.tee $10 + local.tee $1 i32.const 1 i32.const 2 i32.const 3 i32.const 2624 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20567,7 +21219,7 @@ i32.const 2648 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $11 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20579,28 +21231,40 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2680 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2680 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $10 + local.tee $7 + local.get $37 + local.tee $34 + i32.ne + if + local.get $7 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $7 + end local.set $37 local.get $37 i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.tee $0 + local.tee $7 i32.const 0 i32.const 2 i32.const 3 i32.const 2720 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $5 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20619,7 +21283,7 @@ i32.const 2736 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $36 + local.tee $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20631,21 +21295,33 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2776 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $38 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2776 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $38 + local.tee $34 + local.get $37 + local.tee $39 + i32.ne + if + local.get $34 + call $~lib/rt/pure/__retain + drop + local.get $39 + call $~lib/rt/pure/__release + end + local.get $34 + end local.set $37 local.get $37 i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.tee $3 + local.tee $34 i32.const 0 i32.const 2 i32.const 3 @@ -20683,15 +21359,27 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2872 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $42 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2872 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $42 + local.tee $39 + local.get $37 + local.tee $43 + i32.ne + if + local.get $39 + call $~lib/rt/pure/__retain + drop + local.get $43 + call $~lib/rt/pure/__release + end + local.get $39 + end local.set $37 local.get $37 i32.const 4 @@ -20735,15 +21423,27 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2968 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $46 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2968 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $46 + local.tee $43 + local.get $37 + local.tee $47 + i32.ne + if + local.get $43 + call $~lib/rt/pure/__retain + drop + local.get $47 + call $~lib/rt/pure/__release + end + local.get $43 + end local.set $37 local.get $37 i32.const 7 @@ -20787,15 +21487,27 @@ call $~lib/builtins/abort unreachable end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3064 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $50 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3064 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $50 + local.tee $47 + local.get $37 + local.tee $51 + i32.ne + if + local.get $47 + call $~lib/rt/pure/__retain + drop + local.get $51 + call $~lib/rt/pure/__release + end + local.get $47 + end local.set $37 local.get $37 i32.const 7 @@ -20851,23 +21563,31 @@ call $~lib/rt/pure/__release local.get $31 call $~lib/rt/pure/__release - local.get $34 + local.get $36 + call $~lib/rt/pure/__release + local.get $27 call $~lib/rt/pure/__release local.get $29 call $~lib/rt/pure/__release local.get $28 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $24 call $~lib/rt/pure/__release - local.get $27 + local.get $26 call $~lib/rt/pure/__release local.get $25 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $21 call $~lib/rt/pure/__release local.get $23 call $~lib/rt/pure/__release - local.get $26 + local.get $22 + call $~lib/rt/pure/__release + local.get $4 call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release @@ -20875,47 +21595,39 @@ call $~lib/rt/pure/__release local.get $19 call $~lib/rt/pure/__release - local.get $22 + local.get $0 + call $~lib/rt/pure/__release + local.get $15 call $~lib/rt/pure/__release local.get $17 call $~lib/rt/pure/__release local.get $16 call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release local.get $12 call $~lib/rt/pure/__release - local.get $15 + local.get $14 call $~lib/rt/pure/__release local.get $13 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release local.get $11 call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release local.get $10 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $2 + local.get $5 call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $36 + local.get $8 call $~lib/rt/pure/__release local.get $38 call $~lib/rt/pure/__release - local.get $3 + local.get $34 call $~lib/rt/pure/__release local.get $40 call $~lib/rt/pure/__release @@ -22297,61 +23009,61 @@ call $~lib/rt/pure/__retain local.tee $38 call $~lib/rt/pure/__retain - local.set $3 + local.set $34 i32.const 2 i32.const 2 i32.const 3 i32.const 3848 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $5 call $~lib/rt/pure/__retain - local.set $36 + local.set $8 i32.const 4 i32.const 2 i32.const 3 i32.const 3872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $10 call $~lib/rt/pure/__retain - local.set $0 + local.set $7 i32.const 4 i32.const 2 i32.const 3 i32.const 3904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $9 call $~lib/rt/pure/__retain - local.set $2 + local.set $11 i32.const 64 call $std/array/createReverseOrderedArray - local.set $10 + local.set $1 i32.const 128 call $std/array/createReverseOrderedArray - local.set $5 + local.set $13 i32.const 1024 call $std/array/createReverseOrderedArray - local.set $8 + local.set $14 i32.const 10000 call $std/array/createReverseOrderedArray - local.set $6 + local.set $12 i32.const 512 call $std/array/createRandomOrderedArray - local.set $14 + local.set $2 local.get $42 call $std/array/assertSortedDefault - local.get $3 + local.get $34 call $std/array/assertSortedDefault - local.get $3 + local.get $34 i32.const 1 i32.const 2 i32.const 3 i32.const 3992 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $17 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22363,16 +23075,16 @@ call $~lib/builtins/abort unreachable end - local.get $36 + local.get $8 call $std/array/assertSortedDefault - local.get $36 + local.get $8 i32.const 2 i32.const 2 i32.const 3 i32.const 4016 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $15 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22384,10 +23096,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $7 call $std/array/assertSortedDefault - local.get $0 - local.get $2 + local.get $7 + local.get $11 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22399,10 +23111,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $1 call $std/array/assertSortedDefault - local.get $10 - local.get $2 + local.get $1 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -22414,10 +23126,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $13 call $std/array/assertSortedDefault - local.get $5 - local.get $2 + local.get $13 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -22429,10 +23141,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $14 call $std/array/assertSortedDefault - local.get $8 - local.get $2 + local.get $14 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -22444,10 +23156,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $12 call $std/array/assertSortedDefault - local.get $6 - local.get $2 + local.get $12 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -22459,7 +23171,7 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $2 call $std/array/assertSortedDefault local.get $52 call $~lib/rt/pure/__release @@ -22491,77 +23203,77 @@ call $~lib/rt/pure/__release local.get $38 call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $36 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $10 + local.get $34 call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release - local.get $14 + local.get $7 call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release local.get $13 call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release end block i32.const 64 call $std/array/createRandomOrderedArray - local.set $13 + local.set $15 i32.const 257 call $std/array/createRandomOrderedArray - local.set $9 - local.get $13 + local.set $17 + local.get $15 i32.const 49 call $std/array/assertSorted - local.get $13 + local.get $15 i32.const 50 call $std/array/assertSorted - local.get $9 + local.get $17 i32.const 51 call $std/array/assertSorted - local.get $9 + local.get $17 i32.const 52 call $std/array/assertSorted - local.get $13 + local.get $15 call $~lib/rt/pure/__release - local.get $9 + local.get $17 call $~lib/rt/pure/__release end block i32.const 2 call $std/array/createReverseOrderedNestedArray - local.set $9 - local.get $9 + local.set $17 + local.get $17 i32.const 53 call $std/array/assertSorted<~lib/array/Array> - local.get $9 + local.get $17 call $~lib/rt/pure/__release end block i32.const 512 call $std/array/createReverseOrderedElementsArray - local.set $9 - local.get $9 + local.set $17 + local.get $17 i32.const 54 call $std/array/assertSorted> - local.get $9 + local.get $17 call $~lib/rt/pure/__release end block @@ -22571,25 +23283,25 @@ i32.const 4264 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $15 call $~lib/rt/pure/__retain - local.set $9 + local.set $17 i32.const 7 i32.const 2 i32.const 13 i32.const 4312 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $12 call $~lib/rt/pure/__retain - local.set $14 + local.set $2 i32.const 1 global.set $~lib/argc - local.get $9 + local.get $17 i32.const 0 call $std/array/assertSorted<~lib/string/String | null>|trampoline - local.get $9 - local.get $14 + local.get $17 + local.get $2 i32.const 0 call $std/array/isArraysEqual<~lib/string/String | null> i32.eqz @@ -22603,22 +23315,22 @@ end i32.const 400 call $std/array/createRandomStringArray - local.set $8 + local.set $14 i32.const 1 global.set $~lib/argc - local.get $8 + local.get $14 i32.const 0 call $std/array/assertSorted<~lib/string/String>|trampoline - local.get $13 + local.get $15 call $~lib/rt/pure/__release - local.get $9 + local.get $17 call $~lib/rt/pure/__release - local.get $6 + local.get $12 + call $~lib/rt/pure/__release + local.get $2 call $~lib/rt/pure/__release local.get $14 call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release end block i32.const 2 @@ -22627,10 +23339,10 @@ i32.const 4432 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $14 + local.tee $2 i32.const 4512 call $~lib/array/Array#join - local.tee $8 + local.tee $14 i32.const 4536 call $~lib/string/String.__eq i32.eqz @@ -22648,10 +23360,10 @@ i32.const 4576 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $17 i32.const 4248 call $~lib/array/Array#join - local.tee $6 + local.tee $12 i32.const 5080 call $~lib/string/String.__eq i32.eqz @@ -22669,10 +23381,10 @@ i32.const 5112 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $13 i32.const 5144 call $~lib/array/Array#join - local.tee $13 + local.tee $15 i32.const 5080 call $~lib/string/String.__eq i32.eqz @@ -22690,10 +23402,10 @@ i32.const 5168 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $11 i32.const 5192 call $~lib/array/Array#join - local.tee $10 + local.tee $1 i32.const 5216 call $~lib/string/String.__eq i32.eqz @@ -22711,10 +23423,10 @@ i32.const 5280 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $7 i32.const 5344 call $~lib/array/Array#join - local.tee $7 + local.tee $9 i32.const 6544 call $~lib/string/String.__eq i32.eqz @@ -22732,10 +23444,10 @@ i32.const 6664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $36 + local.tee $8 i32.const 4248 call $~lib/array/Array<~lib/string/String>#join - local.tee $4 + local.tee $10 i32.const 6640 call $~lib/string/String.__eq i32.eqz @@ -22753,34 +23465,34 @@ i32.const 19 i32.const 0 call $~lib/rt/__allocArray - local.set $1 - local.get $1 + local.set $5 + local.get $5 i32.load offset=4 - local.set $3 - local.get $3 + local.set $34 + local.get $34 i32.const 0 call $std/array/Ref#constructor local.tee $38 call $~lib/rt/pure/__retain i32.store - local.get $3 + local.get $34 i32.const 0 call $~lib/rt/pure/__retain i32.store offset=4 - local.get $3 + local.get $34 i32.const 0 call $std/array/Ref#constructor local.tee $42 call $~lib/rt/pure/__retain i32.store offset=8 - local.get $1 + local.get $5 end call $~lib/rt/pure/__retain - local.set $3 - local.get $3 + local.set $34 + local.get $34 i32.const 4512 call $~lib/array/Array#join - local.tee $1 + local.tee $5 i32.const 6744 call $~lib/string/String.__eq i32.eqz @@ -22792,37 +23504,37 @@ call $~lib/builtins/abort unreachable end + local.get $2 + call $~lib/rt/pure/__release local.get $14 call $~lib/rt/pure/__release - local.get $8 + local.get $17 call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $5 + local.get $12 call $~lib/rt/pure/__release local.get $13 call $~lib/rt/pure/__release - local.get $2 + local.get $15 call $~lib/rt/pure/__release - local.get $10 + local.get $11 call $~lib/rt/pure/__release - local.get $0 + local.get $1 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $36 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $8 + call $~lib/rt/pure/__release + local.get $10 call $~lib/rt/pure/__release local.get $38 call $~lib/rt/pure/__release local.get $42 call $~lib/rt/pure/__release - local.get $3 + local.get $34 call $~lib/rt/pure/__release - local.get $1 + local.get $5 call $~lib/rt/pure/__release end block @@ -22832,9 +23544,9 @@ i32.const 6824 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $34 call $~lib/rt/pure/__retain - local.set $1 + local.set $5 i32.const 1 i32.const 2 i32.const 3 @@ -22850,21 +23562,21 @@ i32.const 6864 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $36 + local.tee $8 call $~lib/rt/pure/__retain - local.set $4 + local.set $10 i32.const 4 i32.const 2 i32.const 3 i32.const 6888 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $7 call $~lib/rt/pure/__retain - local.set $7 - local.get $1 + local.set $9 + local.get $5 call $~lib/array/Array#toString - local.tee $10 + local.tee $1 i32.const 4248 call $~lib/string/String.__eq i32.eqz @@ -22878,7 +23590,7 @@ end local.get $42 call $~lib/array/Array#toString - local.tee $2 + local.tee $11 i32.const 6640 call $~lib/string/String.__eq i32.eqz @@ -22890,9 +23602,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $10 call $~lib/array/Array#toString - local.tee $13 + local.tee $15 i32.const 6920 call $~lib/string/String.__eq i32.eqz @@ -22904,9 +23616,9 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $9 call $~lib/array/Array#toString - local.tee $5 + local.tee $13 i32.const 6944 call $~lib/string/String.__eq i32.eqz @@ -22924,9 +23636,9 @@ i32.const 6976 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $17 call $~lib/array/Array#toString - local.tee $6 + local.tee $12 i32.const 7000 call $~lib/string/String.__eq i32.eqz @@ -22944,9 +23656,9 @@ i32.const 7032 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $14 + local.tee $2 call $~lib/array/Array#toString - local.tee $8 + local.tee $14 i32.const 7056 call $~lib/string/String.__eq i32.eqz @@ -23068,7 +23780,7 @@ i32.const 7584 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 + local.tee $16 call $~lib/rt/pure/__retain i32.store offset=4 local.get $49 @@ -23106,7 +23818,7 @@ i32.const 7640 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $12 + local.tee $19 call $~lib/rt/pure/__retain i32.store local.get $53 @@ -23116,7 +23828,7 @@ i32.const 7664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $16 + local.tee $20 call $~lib/rt/pure/__retain i32.store offset=4 local.get $49 @@ -23146,29 +23858,29 @@ local.set $49 local.get $49 i32.load offset=4 - local.set $15 - local.get $15 + local.set $0 + local.get $0 block (result i32) i32.const 1 i32.const 2 i32.const 24 i32.const 0 call $~lib/rt/__allocArray - local.set $17 - local.get $17 + local.set $18 + local.get $18 i32.load offset=4 - local.set $22 - local.get $22 + local.set $4 + local.get $4 i32.const 1 i32.const 2 i32.const 7 i32.const 7688 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 + local.tee $23 call $~lib/rt/pure/__retain i32.store - local.get $17 + local.get $18 end call $~lib/rt/pure/__retain i32.store @@ -23178,7 +23890,7 @@ local.set $56 local.get $56 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString - local.tee $15 + local.tee $0 i32.const 6640 call $~lib/string/String.__eq i32.eqz @@ -23190,38 +23902,38 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $34 call $~lib/rt/pure/__release - local.get $1 + local.get $5 call $~lib/rt/pure/__release local.get $38 call $~lib/rt/pure/__release local.get $42 call $~lib/rt/pure/__release - local.get $36 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $7 + local.get $8 call $~lib/rt/pure/__release local.get $10 call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $5 + local.get $7 call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release - local.get $6 + local.get $1 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $13 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $2 call $~lib/rt/pure/__release local.get $14 call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release local.get $41 call $~lib/rt/pure/__release local.get $40 @@ -23242,19 +23954,19 @@ call $~lib/rt/pure/__release local.get $52 call $~lib/rt/pure/__release - local.get $11 + local.get $16 call $~lib/rt/pure/__release local.get $50 call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $16 - call $~lib/rt/pure/__release - local.get $53 + local.get $19 call $~lib/rt/pure/__release local.get $20 call $~lib/rt/pure/__release - local.get $15 + local.get $53 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release + local.get $0 call $~lib/rt/pure/__release end global.get $std/array/arr @@ -23266,7 +23978,7 @@ local.get $56 call $~lib/rt/pure/__release ) - (func $std/array/main (; 307 ;) (type $FUNCSIG$v) + (func $std/array/main (; 305 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -23275,25 +23987,25 @@ global.set $~lib/started end ) - (func $start (; 308 ;) (type $FUNCSIG$v) + (func $start (; 306 ;) (type $FUNCSIG$v) call $start:std/array ) - (func $~lib/array/Array#__visit_impl (; 309 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 307 ;) (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 (; 308 ;) (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 (; 309 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 312 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 310 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 313 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 311 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/__visit (; 314 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 312 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -23447,7 +24159,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 315 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 313 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23483,7 +24195,7 @@ end end ) - (func $~lib/array/Array>#__visit_impl (; 316 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array>#__visit_impl (; 314 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23519,7 +24231,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (; 317 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (; 315 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23555,7 +24267,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 318 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 316 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23591,16 +24303,16 @@ end end ) - (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) nop ) - (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) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23636,16 +24348,16 @@ end end ) - (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#__visit_impl (; 324 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 322 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 325 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 323 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~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>#__visit_impl (; 324 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23681,7 +24393,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 327 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 325 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23717,7 +24429,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 328 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 326 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23753,7 +24465,7 @@ end end ) - (func $~lib/rt/__visit_members (; 329 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 327 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block @@ -24155,6 +24867,6 @@ end unreachable ) - (func $null (; 330 ;) (type $FUNCSIG$v) + (func $null (; 328 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index 83e54ee0..3154123f 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -1915,13 +1915,10 @@ local.get $7 call $~lib/rt/stub/__retain ) - (func $~lib/rt/stub/__skippedRelease (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - ) - (func $~lib/rt/stub/__release (; 10 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/stub/__release (; 9 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array> (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array> (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/stub/__retain @@ -2091,7 +2088,7 @@ call $~lib/rt/stub/__release local.get $1 ) - (func $~lib/arraybuffer/ArrayBuffer.isView (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer.isView (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 if block (result i32) @@ -2205,7 +2202,7 @@ end i32.const 0 ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/stub/__retain @@ -2375,7 +2372,7 @@ call $~lib/rt/stub/__release local.get $1 ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array> (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array> (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/stub/__retain @@ -2545,7 +2542,7 @@ call $~lib/rt/stub/__release local.get $1 ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView> (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView> (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/stub/__retain @@ -2715,12 +2712,10 @@ call $~lib/rt/stub/__release local.get $1 ) - (func $~lib/rt/stub/__retainRelease (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 i32.const 1073741808 local.get $2 @@ -2763,10 +2758,22 @@ local.get $0 end local.tee $4 - local.get $4 - i32.load - local.get $3 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if + local.get $5 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $5 + end i32.store local.get $0 local.get $3 @@ -2776,7 +2783,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/typedarray/Uint8Array#constructor (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#constructor (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -2794,7 +2801,7 @@ local.set $0 local.get $0 ) - (func $~lib/rt/__allocArray (; 19 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/__allocArray (; 17 ;) (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) @@ -2832,7 +2839,7 @@ end local.get $4 ) - (func $~lib/typedarray/Int32Array#constructor (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#constructor (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -2850,9 +2857,10 @@ local.set $0 local.get $0 ) - (func $~lib/dataview/DataView#constructor (; 21 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/dataview/DataView#constructor (; 19 ;) (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) local.get $1 call $~lib/rt/stub/__retain drop @@ -2902,29 +2910,41 @@ local.get $0 end local.tee $4 - local.get $4 - i32.load - local.get $1 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $1 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if + local.get $5 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $5 + end i32.store local.get $1 local.get $2 i32.add - local.set $5 + local.set $6 local.get $0 - local.get $5 + local.get $6 i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $0 ) - (func $~lib/typedarray/Uint8Array#get:buffer (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#get:buffer (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load call $~lib/rt/stub/__retain ) - (func $~lib/dataview/DataView#constructor|trampoline (; 23 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/dataview/DataView#constructor|trampoline (; 21 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -2949,7 +2969,7 @@ local.get $3 call $~lib/dataview/DataView#constructor ) - (func $start:std/arraybuffer (; 24 ;) (type $FUNCSIG$v) + (func $start:std/arraybuffer (; 22 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3011,12 +3031,16 @@ call $~lib/builtins/abort unreachable end - global.get $std/arraybuffer/sliced - global.get $std/arraybuffer/buffer - i32.const 1 - i32.const 1073741808 - call $~lib/arraybuffer/ArrayBuffer#slice - call $~lib/rt/stub/__skippedRelease + block (result i32) + global.get $std/arraybuffer/buffer + i32.const 1 + i32.const 1073741808 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $0 + global.get $std/arraybuffer/sliced + call $~lib/rt/stub/__release + local.get $0 + end global.set $std/arraybuffer/sliced global.get $std/arraybuffer/sliced call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3031,12 +3055,16 @@ call $~lib/builtins/abort unreachable end - global.get $std/arraybuffer/sliced - global.get $std/arraybuffer/buffer - i32.const -1 - i32.const 1073741808 - call $~lib/arraybuffer/ArrayBuffer#slice - call $~lib/rt/stub/__skippedRelease + block (result i32) + global.get $std/arraybuffer/buffer + i32.const -1 + i32.const 1073741808 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $0 + global.get $std/arraybuffer/sliced + call $~lib/rt/stub/__release + local.get $0 + end global.set $std/arraybuffer/sliced global.get $std/arraybuffer/sliced call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3051,12 +3079,16 @@ call $~lib/builtins/abort unreachable end - global.get $std/arraybuffer/sliced - global.get $std/arraybuffer/buffer - i32.const 1 - i32.const 3 - call $~lib/arraybuffer/ArrayBuffer#slice - call $~lib/rt/stub/__skippedRelease + block (result i32) + global.get $std/arraybuffer/buffer + i32.const 1 + i32.const 3 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $0 + global.get $std/arraybuffer/sliced + call $~lib/rt/stub/__release + local.get $0 + end global.set $std/arraybuffer/sliced global.get $std/arraybuffer/sliced call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3071,12 +3103,16 @@ call $~lib/builtins/abort unreachable end - global.get $std/arraybuffer/sliced - global.get $std/arraybuffer/buffer - i32.const 1 - i32.const -1 - call $~lib/arraybuffer/ArrayBuffer#slice - call $~lib/rt/stub/__skippedRelease + block (result i32) + global.get $std/arraybuffer/buffer + i32.const 1 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $0 + global.get $std/arraybuffer/sliced + call $~lib/rt/stub/__release + local.get $0 + end global.set $std/arraybuffer/sliced global.get $std/arraybuffer/sliced call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3091,12 +3127,16 @@ call $~lib/builtins/abort unreachable end - global.get $std/arraybuffer/sliced - global.get $std/arraybuffer/buffer - i32.const -3 - i32.const -1 - call $~lib/arraybuffer/ArrayBuffer#slice - call $~lib/rt/stub/__skippedRelease + block (result i32) + global.get $std/arraybuffer/buffer + i32.const -3 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $0 + global.get $std/arraybuffer/sliced + call $~lib/rt/stub/__release + local.get $0 + end global.set $std/arraybuffer/sliced global.get $std/arraybuffer/sliced call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3111,12 +3151,16 @@ call $~lib/builtins/abort unreachable end - global.get $std/arraybuffer/sliced - global.get $std/arraybuffer/buffer - i32.const -4 - i32.const 42 - call $~lib/arraybuffer/ArrayBuffer#slice - call $~lib/rt/stub/__skippedRelease + block (result i32) + global.get $std/arraybuffer/buffer + i32.const -4 + i32.const 42 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $0 + global.get $std/arraybuffer/sliced + call $~lib/rt/stub/__release + local.get $0 + end global.set $std/arraybuffer/sliced global.get $std/arraybuffer/sliced call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3131,12 +3175,16 @@ call $~lib/builtins/abort unreachable end - global.get $std/arraybuffer/sliced - global.get $std/arraybuffer/buffer - i32.const 42 - i32.const 1073741808 - call $~lib/arraybuffer/ArrayBuffer#slice - call $~lib/rt/stub/__skippedRelease + block (result i32) + global.get $std/arraybuffer/buffer + i32.const 42 + i32.const 1073741808 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $0 + global.get $std/arraybuffer/sliced + call $~lib/rt/stub/__release + local.get $0 + end global.set $std/arraybuffer/sliced global.get $std/arraybuffer/sliced call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -3301,9 +3349,9 @@ local.get $3 call $~lib/rt/stub/__release ) - (func $start (; 25 ;) (type $FUNCSIG$v) + (func $start (; 23 ;) (type $FUNCSIG$v) call $start:std/arraybuffer ) - (func $null (; 26 ;) (type $FUNCSIG$v) + (func $null (; 24 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index bfe0806e..51f2aa26 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -3,9 +3,9 @@ (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) + (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) - (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$fiii (func (param i32 i32 i32) (result f32))) (type $FUNCSIG$diii (func (param i32 i32 i32) (result f64))) (type $FUNCSIG$jj (func (param i64) (result i64))) @@ -127,12 +127,13 @@ (func $~lib/rt/stub/__retain (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 ) - (func $~lib/rt/stub/__retainRelease (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 + (func $~lib/rt/stub/__release (; 3 ;) (type $FUNCSIG$vi) (param $0 i32) + nop ) (func $~lib/arraybuffer/ArrayBufferView#constructor (; 4 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 i32.const 1073741808 local.get $2 @@ -175,10 +176,22 @@ local.get $0 end local.tee $4 - local.get $4 - i32.load - local.get $3 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if + local.get $5 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $5 + end i32.store local.get $0 local.get $3 @@ -232,12 +245,10 @@ i32.sub i32.load offset=12 ) - (func $~lib/rt/stub/__release (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) - nop - ) - (func $~lib/dataview/DataView#constructor (; 9 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/dataview/DataView#constructor (; 8 ;) (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) local.get $1 call $~lib/rt/stub/__retain drop @@ -287,40 +298,52 @@ local.get $0 end local.tee $4 - local.get $4 - i32.load - local.get $1 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $1 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if + local.get $5 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $5 + end i32.store local.get $1 local.get $2 i32.add - local.set $5 + local.set $6 local.get $0 - local.get $5 + local.get $6 i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $0 ) - (func $~lib/typedarray/Uint8Array#get:buffer (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#get:buffer (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load call $~lib/rt/stub/__retain ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load i32.sub ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=8 ) - (func $~lib/polyfills/bswap (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/polyfills/bswap (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const -16711936 i32.and @@ -334,7 +357,7 @@ i32.or return ) - (func $~lib/dataview/DataView#getFloat32 (; 14 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $~lib/dataview/DataView#getFloat32 (; 13 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $1 i32.const 0 i32.lt_s @@ -370,7 +393,7 @@ f32.reinterpret_i32 end ) - (func $~lib/polyfills/bswap (; 15 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/polyfills/bswap (; 14 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -409,7 +432,7 @@ i64.rotr return ) - (func $~lib/dataview/DataView#getFloat64 (; 16 ;) (type $FUNCSIG$diii) (param $0 i32) (param $1 i32) (param $2 i32) (result f64) + (func $~lib/dataview/DataView#getFloat64 (; 15 ;) (type $FUNCSIG$diii) (param $0 i32) (param $1 i32) (param $2 i32) (result f64) local.get $1 i32.const 0 i32.lt_s @@ -445,7 +468,7 @@ f64.reinterpret_i64 end ) - (func $~lib/dataview/DataView#getInt8 (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/dataview/DataView#getInt8 (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -464,7 +487,7 @@ i32.add i32.load8_s ) - (func $~lib/polyfills/bswap (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/polyfills/bswap (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 8 i32.shl @@ -480,7 +503,7 @@ i32.or return ) - (func $~lib/dataview/DataView#getInt16 (; 19 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getInt16 (; 18 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 0 @@ -514,7 +537,7 @@ call $~lib/polyfills/bswap end ) - (func $~lib/polyfills/bswap (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/polyfills/bswap (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const -16711936 i32.and @@ -528,7 +551,7 @@ i32.or return ) - (func $~lib/dataview/DataView#getInt32 (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getInt32 (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 0 @@ -562,7 +585,7 @@ call $~lib/polyfills/bswap end ) - (func $~lib/polyfills/bswap (; 22 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/polyfills/bswap (; 21 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -601,7 +624,7 @@ i64.rotr return ) - (func $~lib/dataview/DataView#getInt64 (; 23 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64) + (func $~lib/dataview/DataView#getInt64 (; 22 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64) (local $3 i64) local.get $1 i32.const 0 @@ -635,7 +658,7 @@ call $~lib/polyfills/bswap end ) - (func $~lib/dataview/DataView#getUint8 (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/dataview/DataView#getUint8 (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -654,7 +677,7 @@ i32.add i32.load8_u ) - (func $~lib/polyfills/bswap (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/polyfills/bswap (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 8 i32.shl @@ -668,7 +691,7 @@ i32.or return ) - (func $~lib/dataview/DataView#getUint16 (; 26 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getUint16 (; 25 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 0 @@ -702,7 +725,7 @@ call $~lib/polyfills/bswap end ) - (func $~lib/dataview/DataView#getUint32 (; 27 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getUint32 (; 26 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 0 @@ -736,7 +759,7 @@ call $~lib/polyfills/bswap end ) - (func $~lib/dataview/DataView#getUint64 (; 28 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64) + (func $~lib/dataview/DataView#getUint64 (; 27 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64) (local $3 i64) local.get $1 i32.const 0 @@ -770,7 +793,7 @@ call $~lib/polyfills/bswap end ) - (func $~lib/dataview/DataView#setFloat32 (; 29 ;) (type $FUNCSIG$viifi) (param $0 i32) (param $1 i32) (param $2 f32) (param $3 i32) + (func $~lib/dataview/DataView#setFloat32 (; 28 ;) (type $FUNCSIG$viifi) (param $0 i32) (param $1 i32) (param $2 f32) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -808,7 +831,7 @@ i32.store end ) - (func $~lib/dataview/DataView#setFloat64 (; 30 ;) (type $FUNCSIG$viidi) (param $0 i32) (param $1 i32) (param $2 f64) (param $3 i32) + (func $~lib/dataview/DataView#setFloat64 (; 29 ;) (type $FUNCSIG$viidi) (param $0 i32) (param $1 i32) (param $2 f64) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -846,7 +869,7 @@ i64.store end ) - (func $~lib/dataview/DataView#setInt8 (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#setInt8 (; 30 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -866,7 +889,7 @@ local.get $2 i32.store8 ) - (func $~lib/dataview/DataView#setInt16 (; 32 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/dataview/DataView#setInt16 (; 31 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -898,7 +921,7 @@ end i32.store16 ) - (func $~lib/dataview/DataView#setInt32 (; 33 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/dataview/DataView#setInt32 (; 32 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -930,7 +953,7 @@ end i32.store ) - (func $~lib/dataview/DataView#setInt64 (; 34 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32) + (func $~lib/dataview/DataView#setInt64 (; 33 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -962,7 +985,7 @@ end i64.store ) - (func $~lib/dataview/DataView#setUint8 (; 35 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#setUint8 (; 34 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -982,7 +1005,7 @@ local.get $2 i32.store8 ) - (func $~lib/dataview/DataView#setUint16 (; 36 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/dataview/DataView#setUint16 (; 35 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -1014,7 +1037,7 @@ end i32.store16 ) - (func $~lib/dataview/DataView#setUint32 (; 37 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/dataview/DataView#setUint32 (; 36 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -1046,7 +1069,7 @@ end i32.store ) - (func $~lib/dataview/DataView#setUint64 (; 38 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32) + (func $~lib/dataview/DataView#setUint64 (; 37 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -1078,7 +1101,7 @@ end i64.store ) - (func $~lib/dataview/DataView#constructor|trampoline (; 39 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/dataview/DataView#constructor|trampoline (; 38 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -1103,23 +1126,21 @@ local.get $3 call $~lib/dataview/DataView#constructor ) - (func $~lib/rt/stub/__skippedRelease (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - ) - (func $~lib/dataview/DataView#get:byteOffset (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/dataview/DataView#get:byteOffset (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load i32.sub ) - (func $~lib/dataview/DataView#get:byteLength (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/dataview/DataView#get:byteLength (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=8 ) - (func $start:std/dataview (; 43 ;) (type $FUNCSIG$v) + (func $start:std/dataview (; 41 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/heap/HEAP_BASE i32.const 15 i32.add @@ -2812,19 +2833,23 @@ call $~lib/builtins/abort unreachable end - global.get $std/dataview/view block (result i32) - i32.const 1 - global.set $~lib/argc - i32.const 0 - global.get $std/dataview/array - call $~lib/typedarray/Uint8Array#get:buffer - local.tee $1 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#constructor|trampoline + block (result i32) + i32.const 1 + global.set $~lib/argc + i32.const 0 + global.get $std/dataview/array + call $~lib/typedarray/Uint8Array#get:buffer + local.tee $1 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#constructor|trampoline + end + local.set $2 + global.get $std/dataview/view + call $~lib/rt/stub/__release + local.get $2 end - call $~lib/rt/stub/__skippedRelease global.set $std/dataview/view global.get $std/dataview/view call $~lib/dataview/DataView#get:byteOffset @@ -2857,9 +2882,9 @@ local.get $1 call $~lib/rt/stub/__release ) - (func $start (; 44 ;) (type $FUNCSIG$v) + (func $start (; 42 ;) (type $FUNCSIG$v) call $start:std/dataview ) - (func $null (; 45 ;) (type $FUNCSIG$v) + (func $null (; 43 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index cfb8017b..4ad1e828 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -1686,7 +1686,7 @@ end end ) - (func $~lib/rt/pure/__skippedRelease (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.const 508 i32.gt_u @@ -1696,25 +1696,29 @@ i32.sub call $~lib/rt/pure/decrement end - local.get $1 ) (func $~lib/map/Map#clear (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - local.get $0 - i32.load + (local $1 i32) i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.set $1 + local.get $0 + i32.load + call $~lib/rt/pure/__release + local.get $0 + local.get $1 i32.store local.get $0 i32.const 3 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=8 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.set $1 + local.get $0 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $0 + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -1817,44 +1821,7 @@ i32.const 0 i32.ne ) - (func $~lib/rt/pure/__retainRelease (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.ne - if - local.get $1 - i32.const 508 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - i32.const 508 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - end - local.get $1 - ) - (func $~lib/rt/pure/__release (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - i32.const 508 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - ) - (func $~lib/map/Map#rehash (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1865,12 +1832,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -1879,46 +1846,46 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add local.set $7 - local.get $5 + local.get $3 local.set $2 loop $continue|0 - local.get $3 + local.get $4 local.get $7 i32.ne if - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $3 + local.get $4 i32.load8_s i32.store8 local.get $2 - local.get $3 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $3 + local.get $4 i32.load8_s call $~lib/util/hash/hash8 local.get $1 i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load @@ -1931,27 +1898,45 @@ i32.add local.set $2 end - local.get $3 + local.get $4 i32.const 12 i32.add - local.set $3 + local.set $4 br $continue|0 end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -1960,12 +1945,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 34 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 32 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2062,7 +2047,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -2080,7 +2065,7 @@ unreachable end ) - (func $~lib/map/Map#delete (; 36 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#delete (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $1 @@ -2143,7 +2128,7 @@ call $~lib/map/Map#rehash end ) - (func $std/map/testNumeric (; 37 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 35 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/map/Map#constructor @@ -2489,7 +2474,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#constructor (; 38 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 36 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 4 @@ -2517,7 +2502,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#has (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -2528,7 +2513,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 40 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2539,12 +2524,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -2553,46 +2538,46 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add local.set $7 - local.get $5 + local.get $3 local.set $2 loop $continue|0 - local.get $3 + local.get $4 local.get $7 i32.ne if - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $3 + local.get $4 i32.load8_u i32.store8 local.get $2 - local.get $3 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $3 + local.get $4 i32.load8_u call $~lib/util/hash/hash8 local.get $1 i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load @@ -2605,27 +2590,45 @@ i32.add local.set $2 end - local.get $3 + local.get $4 i32.const 12 i32.add - local.set $3 + local.set $4 br $continue|0 end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -2634,12 +2637,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 41 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 39 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2734,7 +2737,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -2750,7 +2753,7 @@ unreachable end ) - (func $~lib/map/Map#delete (; 43 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#delete (; 41 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $1 @@ -2811,7 +2814,7 @@ call $~lib/map/Map#rehash end ) - (func $std/map/testNumeric (; 44 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 42 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/map/Map#constructor @@ -3143,7 +3146,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#constructor (; 45 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 43 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 5 @@ -3171,7 +3174,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/util/hash/hash16 (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash16 (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 255 i32.and @@ -3186,7 +3189,7 @@ i32.const 16777619 i32.mul ) - (func $~lib/map/Map#find (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 45 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.load local.get $0 @@ -3229,7 +3232,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -3242,7 +3245,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 49 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 47 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3253,12 +3256,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -3267,46 +3270,46 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add local.set $7 - local.get $5 + local.get $3 local.set $2 loop $continue|0 - local.get $3 + local.get $4 local.get $7 i32.ne if - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $3 + local.get $4 i32.load16_s i32.store16 local.get $2 - local.get $3 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $3 + local.get $4 i32.load16_s call $~lib/util/hash/hash16 local.get $1 i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load @@ -3319,27 +3322,45 @@ i32.add local.set $2 end - local.get $3 + local.get $4 i32.const 12 i32.add - local.set $3 + local.set $4 br $continue|0 end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -3348,12 +3369,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 50 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 48 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3450,7 +3471,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -3468,7 +3489,7 @@ unreachable end ) - (func $~lib/map/Map#delete (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#delete (; 50 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $1 @@ -3531,7 +3552,7 @@ call $~lib/map/Map#rehash end ) - (func $std/map/testNumeric (; 53 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 51 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/map/Map#constructor @@ -3877,7 +3898,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#constructor (; 54 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 52 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 6 @@ -3905,7 +3926,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#has (; 55 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -3916,7 +3937,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 56 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 54 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3927,12 +3948,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -3941,46 +3962,46 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add local.set $7 - local.get $5 + local.get $3 local.set $2 loop $continue|0 - local.get $3 + local.get $4 local.get $7 i32.ne if - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $3 + local.get $4 i32.load16_u i32.store16 local.get $2 - local.get $3 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $3 + local.get $4 i32.load16_u call $~lib/util/hash/hash16 local.get $1 i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load @@ -3993,27 +4014,45 @@ i32.add local.set $2 end - local.get $3 + local.get $4 i32.const 12 i32.add - local.set $3 + local.set $4 br $continue|0 end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -4022,12 +4061,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 57 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 55 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4122,7 +4161,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 56 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -4138,7 +4177,7 @@ unreachable end ) - (func $~lib/map/Map#delete (; 59 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#delete (; 57 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $1 @@ -4199,7 +4238,7 @@ call $~lib/map/Map#rehash end ) - (func $std/map/testNumeric (; 60 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 58 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/map/Map#constructor @@ -4531,7 +4570,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#constructor (; 61 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 59 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 7 @@ -4559,7 +4598,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/util/hash/hash32 (; 62 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash32 (; 60 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 255 i32.and @@ -4590,7 +4629,7 @@ i32.const 16777619 i32.mul ) - (func $~lib/map/Map#find (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.load local.get $0 @@ -4631,7 +4670,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -4640,7 +4679,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 65 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 63 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4651,12 +4690,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -4665,46 +4704,46 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add local.set $7 - local.get $5 + local.get $3 local.set $2 loop $continue|0 - local.get $3 + local.get $4 local.get $7 i32.ne if - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $3 + local.get $4 i32.load i32.store local.get $2 - local.get $3 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $3 + local.get $4 i32.load call $~lib/util/hash/hash32 local.get $1 i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load @@ -4717,27 +4756,45 @@ i32.add local.set $2 end - local.get $3 + local.get $4 i32.const 12 i32.add - local.set $3 + local.set $4 br $continue|0 end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -4746,12 +4803,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 66 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 64 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4844,7 +4901,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -4858,7 +4915,7 @@ unreachable end ) - (func $~lib/map/Map#delete (; 68 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#delete (; 66 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $1 @@ -4917,7 +4974,7 @@ call $~lib/map/Map#rehash end ) - (func $std/map/testNumeric (; 69 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 67 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/map/Map#constructor @@ -5235,7 +5292,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#constructor (; 70 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 68 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 8 @@ -5263,7 +5320,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $std/map/testNumeric (; 71 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 69 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/map/Map#constructor @@ -5581,23 +5638,28 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#clear (; 72 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - local.get $0 - i32.load + (func $~lib/map/Map#clear (; 70 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.set $1 + local.get $0 + i32.load + call $~lib/rt/pure/__release + local.get $0 + local.get $1 i32.store local.get $0 i32.const 3 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=8 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.set $1 + local.get $0 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $0 + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -5609,7 +5671,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 73 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 71 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 9 @@ -5637,7 +5699,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/util/hash/hash64 (; 74 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/hash/hash64 (; 72 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i32.wrap_i64 @@ -5703,7 +5765,7 @@ i32.const 16777619 i32.mul ) - (func $~lib/map/Map#find (; 75 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 73 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) local.get $0 i32.load local.get $0 @@ -5744,7 +5806,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 76 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#has (; 74 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) local.get $0 local.get $1 local.get $1 @@ -5753,7 +5815,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 77 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 75 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5764,12 +5826,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -5778,46 +5840,46 @@ i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add local.set $7 - local.get $5 + local.get $3 local.set $2 loop $continue|0 - local.get $3 + local.get $4 local.get $7 i32.ne if - local.get $3 + local.get $4 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $3 + local.get $4 i64.load i64.store local.get $2 - local.get $3 + local.get $4 i32.load offset=8 i32.store offset=8 local.get $2 - local.get $3 + local.get $4 i64.load call $~lib/util/hash/hash64 local.get $1 i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load @@ -5830,27 +5892,45 @@ i32.add local.set $2 end - local.get $3 + local.get $4 i32.const 16 i32.add - local.set $3 + local.set $4 br $continue|0 end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -5859,12 +5939,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 78 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/map/Map#set (; 76 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5957,7 +6037,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 79 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#get (; 77 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) local.get $0 local.get $1 local.get $1 @@ -5971,7 +6051,7 @@ unreachable end ) - (func $~lib/map/Map#delete (; 80 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) + (func $~lib/map/Map#delete (; 78 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) local.get $0 @@ -6031,7 +6111,7 @@ call $~lib/map/Map#rehash end ) - (func $std/map/testNumeric (; 81 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 79 ;) (type $FUNCSIG$v) (local $0 i64) (local $1 i32) call $~lib/map/Map#constructor @@ -6356,7 +6436,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#constructor (; 82 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 80 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 10 @@ -6384,7 +6464,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $std/map/testNumeric (; 83 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 81 ;) (type $FUNCSIG$v) (local $0 i64) (local $1 i32) call $~lib/map/Map#constructor @@ -6709,7 +6789,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#constructor (; 84 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 82 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 11 @@ -6737,7 +6817,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 85 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 83 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) local.get $0 i32.load local.get $0 @@ -6778,7 +6858,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 86 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/map/Map#has (; 84 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) local.get $0 local.get $1 local.get $1 @@ -6788,7 +6868,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 87 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 85 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6799,12 +6879,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -6813,39 +6893,39 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add local.set $7 - local.get $5 + local.get $3 local.set $2 loop $continue|0 - local.get $3 + local.get $4 local.get $7 i32.ne if - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $3 + local.get $4 f32.load f32.store local.get $2 - local.get $3 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $3 + local.get $4 f32.load i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -6853,7 +6933,7 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load @@ -6866,27 +6946,45 @@ i32.add local.set $2 end - local.get $3 + local.get $4 i32.const 12 i32.add - local.set $3 + local.set $4 br $continue|0 end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -6895,12 +6993,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 88 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32) + (func $~lib/map/Map#set (; 86 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6994,7 +7092,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 89 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/map/Map#get (; 87 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) local.get $0 local.get $1 local.get $1 @@ -7009,7 +7107,7 @@ unreachable end ) - (func $~lib/map/Map#delete (; 90 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) + (func $~lib/map/Map#delete (; 88 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) local.get $0 @@ -7070,7 +7168,7 @@ call $~lib/map/Map#rehash end ) - (func $std/map/testNumeric (; 91 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 89 ;) (type $FUNCSIG$v) (local $0 f32) (local $1 i32) call $~lib/map/Map#constructor @@ -7395,7 +7493,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#constructor (; 92 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/map/Map#constructor (; 90 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 12 @@ -7423,7 +7521,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 93 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 91 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) local.get $0 i32.load local.get $0 @@ -7464,7 +7562,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 94 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/map/Map#has (; 92 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) local.get $0 local.get $1 local.get $1 @@ -7474,7 +7572,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 93 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7485,12 +7583,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -7499,39 +7597,39 @@ i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add local.set $7 - local.get $5 + local.get $3 local.set $2 loop $continue|0 - local.get $3 + local.get $4 local.get $7 i32.ne if - local.get $3 + local.get $4 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $3 + local.get $4 f64.load f64.store local.get $2 - local.get $3 + local.get $4 i32.load offset=8 i32.store offset=8 local.get $2 - local.get $3 + local.get $4 f64.load i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -7539,7 +7637,7 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load @@ -7552,27 +7650,45 @@ i32.add local.set $2 end - local.get $3 + local.get $4 i32.const 16 i32.add - local.set $3 + local.set $4 br $continue|0 end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -7581,12 +7697,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 96 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32) + (func $~lib/map/Map#set (; 94 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7680,7 +7796,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 97 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/map/Map#get (; 95 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) local.get $0 local.get $1 local.get $1 @@ -7695,7 +7811,7 @@ unreachable end ) - (func $~lib/map/Map#delete (; 98 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64) + (func $~lib/map/Map#delete (; 96 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64) (local $2 i32) (local $3 i32) local.get $0 @@ -7756,7 +7872,7 @@ call $~lib/map/Map#rehash end ) - (func $std/map/testNumeric (; 99 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 97 ;) (type $FUNCSIG$v) (local $0 f64) (local $1 i32) call $~lib/map/Map#constructor @@ -8081,7 +8197,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $start (; 100 ;) (type $FUNCSIG$v) + (func $start (; 98 ;) (type $FUNCSIG$v) call $std/map/testNumeric call $std/map/testNumeric call $std/map/testNumeric @@ -8093,7 +8209,7 @@ call $std/map/testNumeric call $std/map/testNumeric ) - (func $~lib/rt/pure/markGray (; 101 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 99 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -8117,7 +8233,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 102 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 100 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -8130,7 +8246,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 103 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 101 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -8164,7 +8280,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 104 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 102 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -8192,7 +8308,7 @@ local.get $0 call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/pure/__visit (; 105 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 103 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 508 i32.lt_u @@ -8302,7 +8418,7 @@ unreachable end ) - (func $~lib/rt/__visit_members (; 106 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 104 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $folding-inner0 block $switch$1$default block $switch$1$case$4 @@ -8336,7 +8452,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $null (; 107 ;) (type $FUNCSIG$v) + (func $null (; 105 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index 577bc8b7..6078c7dc 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -3379,7 +3379,7 @@ end end ) - (func $~lib/rt/pure/__skippedRelease (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/pure/__release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 global.get $~lib/heap/HEAP_BASE i32.gt_u @@ -3389,18 +3389,22 @@ i32.sub call $~lib/rt/pure/decrement end - local.get $1 ) (func $~lib/map/Map#clear (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -3408,13 +3412,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -3537,47 +3545,7 @@ i32.const 0 i32.ne ) - (func $~lib/rt/pure/__retainRelease (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - i32.ne - if - global.get $~lib/heap/HEAP_BASE - local.set $2 - local.get $1 - local.get $2 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - local.get $2 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - end - local.get $1 - ) - (func $~lib/rt/pure/__release (; 33 ;) (type $FUNCSIG$vi) (param $0 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/pure/decrement - end - ) - (func $~lib/map/Map#rehash (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3694,20 +3662,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -3721,7 +3713,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 35 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 33 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3832,7 +3824,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3858,11 +3850,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3938,7 +3930,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 39 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 37 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4316,16 +4308,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#clear (; 40 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -4333,13 +4330,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -4351,7 +4352,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -4385,7 +4386,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 42 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 40 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -4434,7 +4435,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -4451,7 +4452,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 42 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4568,20 +4569,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -4595,7 +4620,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 45 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 43 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4704,7 +4729,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4728,11 +4753,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4806,7 +4831,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 49 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 47 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5170,16 +5195,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#clear (; 50 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 48 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -5187,13 +5217,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -5205,7 +5239,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -5239,7 +5273,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/util/hash/hash16 (; 52 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash16 (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const -2128831035 local.set $1 @@ -5261,7 +5295,7 @@ local.set $1 local.get $1 ) - (func $~lib/map/Map#find (; 53 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 51 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -5312,7 +5346,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 54 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -5331,7 +5365,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 55 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5448,20 +5482,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -5475,7 +5533,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 56 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 54 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5586,7 +5644,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 55 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5612,11 +5670,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5692,7 +5750,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 60 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 58 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -6070,16 +6128,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#clear (; 61 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 59 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -6087,13 +6150,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -6105,7 +6172,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 62 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 60 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -6139,7 +6206,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -6188,7 +6255,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -6205,7 +6272,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 65 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 63 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6322,20 +6389,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -6349,7 +6440,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 66 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 64 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6458,7 +6549,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -6482,11 +6573,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 68 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 66 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 69 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6560,7 +6651,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 70 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 68 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -6924,16 +7015,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#clear (; 71 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 69 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -6941,13 +7037,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -6959,7 +7059,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 72 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 70 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -6993,7 +7093,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/util/hash/hash32 (; 73 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash32 (; 71 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const -2128831035 local.set $1 @@ -7035,7 +7135,7 @@ local.set $1 local.get $1 ) - (func $~lib/map/Map#find (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -7082,7 +7182,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 75 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 73 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -7097,7 +7197,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 76 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 74 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7214,20 +7314,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -7241,7 +7365,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 77 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 75 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7348,7 +7472,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 78 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -7370,11 +7494,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 79 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 77 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 80 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 78 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7446,7 +7570,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 81 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 79 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -7796,16 +7920,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#clear (; 82 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 80 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -7813,13 +7942,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -7831,7 +7964,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 83 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 81 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -7865,7 +7998,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 84 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 82 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -7912,7 +8045,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 85 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 83 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -7927,7 +8060,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 86 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 84 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8044,20 +8177,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -8071,7 +8228,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 87 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 85 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8178,7 +8335,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 88 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 86 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -8200,11 +8357,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 89 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 87 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 90 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#delete (; 88 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8276,7 +8433,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 91 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 89 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -8626,16 +8783,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#clear (; 92 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 90 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -8643,13 +8805,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -8661,7 +8827,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 93 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 91 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -8695,7 +8861,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/util/hash/hash64 (; 94 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/hash/hash64 (; 92 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8783,7 +8949,7 @@ local.set $3 local.get $3 ) - (func $~lib/map/Map#find (; 95 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 93 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -8830,7 +8996,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 96 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#has (; 94 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) local.get $0 local.get $1 @@ -8845,7 +9011,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 97 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8963,20 +9129,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $12 + end i32.store offset=8 local.get $0 local.get $4 @@ -8990,7 +9180,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 98 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/map/Map#set (; 96 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i64) (local $4 i32) (local $5 i32) @@ -9098,7 +9288,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 99 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#get (; 97 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) local.get $0 @@ -9120,11 +9310,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 100 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 98 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 101 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#delete (; 99 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) (local $4 i32) @@ -9197,7 +9387,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 102 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 100 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -9554,16 +9744,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#clear (; 103 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 101 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -9571,13 +9766,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -9589,7 +9788,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 104 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 102 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -9623,7 +9822,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 105 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 103 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -9670,7 +9869,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 106 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#has (; 104 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) local.get $0 local.get $1 @@ -9685,7 +9884,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 107 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 105 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9803,20 +10002,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $12 + end i32.store offset=8 local.get $0 local.get $4 @@ -9830,7 +10053,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 108 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/map/Map#set (; 106 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i64) (local $4 i32) (local $5 i32) @@ -9938,7 +10161,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 109 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#get (; 107 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) local.get $0 @@ -9960,11 +10183,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 110 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 108 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 111 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/map/Map#delete (; 109 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) (local $4 i32) @@ -10037,7 +10260,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 112 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 110 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -10394,16 +10617,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#clear (; 113 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 111 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -10411,13 +10639,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -10429,7 +10661,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 114 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 112 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -10463,7 +10695,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 115 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 113 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -10510,7 +10742,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 116 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/map/Map#has (; 114 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) (local $2 f32) local.get $0 local.get $1 @@ -10526,7 +10758,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 117 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 115 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10645,20 +10877,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $12 + end i32.store offset=8 local.get $0 local.get $4 @@ -10672,7 +10928,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 118 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32) + (func $~lib/map/Map#set (; 116 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32) (local $3 f32) (local $4 i32) (local $5 i32) @@ -10781,7 +11037,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 119 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/map/Map#get (; 117 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) (local $2 f32) (local $3 i32) local.get $0 @@ -10804,11 +11060,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 120 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 118 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 121 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/map/Map#delete (; 119 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -10882,7 +11138,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 122 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 120 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f32) i32.const 0 @@ -11239,16 +11495,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#clear (; 123 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 121 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -11256,13 +11517,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -11274,7 +11539,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 124 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 122 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -11308,7 +11573,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/map/Map#find (; 125 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 123 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -11355,7 +11620,7 @@ end i32.const 0 ) - (func $~lib/map/Map#has (; 126 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/map/Map#has (; 124 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 f64) local.get $0 local.get $1 @@ -11371,7 +11636,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#rehash (; 127 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 125 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11490,20 +11755,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $12 + end i32.store offset=8 local.get $0 local.get $4 @@ -11517,7 +11806,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#set (; 128 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32) + (func $~lib/map/Map#set (; 126 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32) (local $3 f64) (local $4 i32) (local $5 i32) @@ -11626,7 +11915,7 @@ call $~lib/rt/pure/__release end ) - (func $~lib/map/Map#get (; 129 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/map/Map#get (; 127 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 f64) (local $3 i32) local.get $0 @@ -11649,11 +11938,11 @@ unreachable end ) - (func $~lib/map/Map#get:size (; 130 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#get:size (; 128 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/map/Map#delete (; 131 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/map/Map#delete (; 129 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 f64) (local $3 i32) (local $4 i32) @@ -11727,7 +12016,7 @@ end i32.const 1 ) - (func $std/map/testNumeric (; 132 ;) (type $FUNCSIG$v) + (func $std/map/testNumeric (; 130 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f64) i32.const 0 @@ -12084,7 +12373,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:std/map (; 133 ;) (type $FUNCSIG$v) + (func $start:std/map (; 131 ;) (type $FUNCSIG$v) call $std/map/testNumeric call $std/map/testNumeric call $std/map/testNumeric @@ -12096,10 +12385,10 @@ call $std/map/testNumeric call $std/map/testNumeric ) - (func $start (; 134 ;) (type $FUNCSIG$v) + (func $start (; 132 ;) (type $FUNCSIG$v) call $start:std/map ) - (func $~lib/rt/pure/markGray (; 135 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 133 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -12126,7 +12415,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 136 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 134 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -12143,7 +12432,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 137 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 135 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -12180,7 +12469,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 138 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 136 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -12209,7 +12498,7 @@ local.get $0 call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/pure/__visit (; 139 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 137 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -12363,7 +12652,7 @@ end end ) - (func $~lib/map/Map#__visit_impl (; 140 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#__visit_impl (; 138 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -12376,7 +12665,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/map/Map#__visit_impl (; 141 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#__visit_impl (; 139 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -12389,7 +12678,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/map/Map#__visit_impl (; 142 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#__visit_impl (; 140 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -12402,7 +12691,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/map/Map#__visit_impl (; 143 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#__visit_impl (; 141 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -12415,7 +12704,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/map/Map#__visit_impl (; 144 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#__visit_impl (; 142 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -12428,7 +12717,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/map/Map#__visit_impl (; 145 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#__visit_impl (; 143 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -12441,7 +12730,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/map/Map#__visit_impl (; 146 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#__visit_impl (; 144 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -12454,7 +12743,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/map/Map#__visit_impl (; 147 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#__visit_impl (; 145 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -12467,7 +12756,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/map/Map#__visit_impl (; 148 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#__visit_impl (; 146 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -12480,7 +12769,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/map/Map#__visit_impl (; 149 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#__visit_impl (; 147 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -12493,7 +12782,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/rt/__visit_members (; 150 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 148 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block end @@ -12730,6 +13019,6 @@ unreachable end ) - (func $null (; 151 ;) (type $FUNCSIG$v) + (func $null (; 149 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/operator-overloading.untouched.wat b/tests/compiler/std/operator-overloading.untouched.wat index f1f4126e..09623d5d 100644 --- a/tests/compiler/std/operator-overloading.untouched.wat +++ b/tests/compiler/std/operator-overloading.untouched.wat @@ -1855,10 +1855,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $~lib/rt/stub/__retainRelease (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - ) - (func $std/operator-overloading/Tester.pos (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/operator-overloading/Tester.pos (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/stub/__retain @@ -1874,7 +1871,7 @@ call $~lib/rt/stub/__release local.get $1 ) - (func $std/operator-overloading/Tester.neg (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/operator-overloading/Tester.neg (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/stub/__retain @@ -1894,7 +1891,7 @@ call $~lib/rt/stub/__release local.get $1 ) - (func $std/operator-overloading/Tester.not (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/operator-overloading/Tester.not (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/stub/__retain @@ -1914,7 +1911,7 @@ call $~lib/rt/stub/__release local.get $1 ) - (func $std/operator-overloading/Tester.excl (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/operator-overloading/Tester.excl (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/stub/__retain @@ -1934,7 +1931,7 @@ call $~lib/rt/stub/__release local.get $1 ) - (func $std/operator-overloading/Tester#inc (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/operator-overloading/Tester#inc (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 local.get $0 i32.load @@ -1950,7 +1947,7 @@ local.get $0 call $~lib/rt/stub/__retain ) - (func $std/operator-overloading/Tester#dec (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/operator-overloading/Tester#dec (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 local.get $0 i32.load @@ -1966,10 +1963,7 @@ local.get $0 call $~lib/rt/stub/__retain ) - (func $~lib/rt/stub/__skippedRelease (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - ) - (func $std/operator-overloading/Tester#postInc (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/operator-overloading/Tester#postInc (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 local.get $0 i32.load @@ -1981,7 +1975,7 @@ i32.add call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/Tester#postDec (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/operator-overloading/Tester#postDec (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 local.get $0 i32.load @@ -1993,7 +1987,7 @@ i32.sub call $std/operator-overloading/Tester#constructor ) - (func $std/operator-overloading/TesterInlineStatic#constructor (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/operator-overloading/TesterInlineStatic#constructor (; 33 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.eqz if @@ -2011,7 +2005,7 @@ i32.store offset=4 local.get $0 ) - (func $std/operator-overloading/TesterInlineStatic.postInc (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/operator-overloading/TesterInlineStatic.postInc (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/stub/__retain @@ -2031,7 +2025,7 @@ call $~lib/rt/stub/__release local.get $1 ) - (func $std/operator-overloading/TesterInlineStatic.add (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/TesterInlineStatic.add (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/stub/__retain @@ -2058,7 +2052,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $std/operator-overloading/TesterInlineInstance#constructor (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/operator-overloading/TesterInlineInstance#constructor (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.eqz if @@ -2076,7 +2070,7 @@ i32.store offset=4 local.get $0 ) - (func $std/operator-overloading/TesterInlineInstance#postInc (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/operator-overloading/TesterInlineInstance#postInc (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 local.get $0 i32.load @@ -2088,7 +2082,7 @@ i32.add call $std/operator-overloading/TesterInlineInstance#constructor ) - (func $std/operator-overloading/TesterInlineInstance#add (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/TesterInlineInstance#add (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/stub/__retain @@ -2110,7 +2104,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $start:std/operator-overloading (; 41 ;) (type $FUNCSIG$v) + (func $start:std/operator-overloading (; 39 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -2134,6 +2128,7 @@ (local $20 i32) (local $21 i32) (local $22 i32) + (local $23 i32) global.get $~lib/heap/HEAP_BASE i32.const 15 i32.add @@ -2734,12 +2729,24 @@ i32.const 2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/shl - global.get $std/operator-overloading/sres - global.get $std/operator-overloading/shl - i32.const 3 - call $std/operator-overloading/Tester.shl - local.tee $11 - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $std/operator-overloading/shl + i32.const 3 + call $std/operator-overloading/Tester.shl + local.tee $11 + local.tee $12 + global.get $std/operator-overloading/sres + local.tee $13 + i32.ne + if + local.get $12 + call $~lib/rt/stub/__retain + drop + local.get $13 + call $~lib/rt/stub/__release + end + local.get $12 + end global.set $std/operator-overloading/sres global.get $std/operator-overloading/sres i32.load @@ -2915,11 +2922,23 @@ i32.const 1 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/incdec - global.get $std/operator-overloading/incdec - global.get $std/operator-overloading/incdec - call $std/operator-overloading/Tester#inc - local.tee $15 - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $std/operator-overloading/incdec + call $std/operator-overloading/Tester#inc + local.tee $15 + local.tee $16 + global.get $std/operator-overloading/incdec + local.tee $17 + i32.ne + if + local.get $16 + call $~lib/rt/stub/__retain + drop + local.get $17 + call $~lib/rt/stub/__release + end + local.get $16 + end global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec i32.load @@ -2942,11 +2961,23 @@ call $~lib/builtins/abort unreachable end - global.get $std/operator-overloading/incdec - global.get $std/operator-overloading/incdec - call $std/operator-overloading/Tester#dec - local.tee $16 - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $std/operator-overloading/incdec + call $std/operator-overloading/Tester#dec + local.tee $16 + local.tee $17 + global.get $std/operator-overloading/incdec + local.tee $18 + i32.ne + if + local.get $17 + call $~lib/rt/stub/__retain + drop + local.get $18 + call $~lib/rt/stub/__release + end + local.get $17 + end global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec i32.load @@ -2969,22 +3000,38 @@ call $~lib/builtins/abort unreachable end - global.get $std/operator-overloading/incdec - i32.const 0 - i32.const 0 - i32.const 1 - call $std/operator-overloading/Tester#constructor - call $~lib/rt/stub/__skippedRelease + block (result i32) + i32.const 0 + i32.const 0 + i32.const 1 + call $std/operator-overloading/Tester#constructor + local.set $18 + global.get $std/operator-overloading/incdec + call $~lib/rt/stub/__release + local.get $18 + end global.set $std/operator-overloading/incdec block (result i32) - global.get $std/operator-overloading/incdec - global.get $std/operator-overloading/incdec - local.tee $17 - call $std/operator-overloading/Tester#postInc - local.tee $18 - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $std/operator-overloading/incdec + local.tee $18 + call $std/operator-overloading/Tester#postInc + local.tee $17 + local.tee $19 + global.get $std/operator-overloading/incdec + local.tee $20 + i32.ne + if + local.get $19 + call $~lib/rt/stub/__retain + drop + local.get $20 + call $~lib/rt/stub/__release + end + local.get $19 + end global.set $std/operator-overloading/incdec - local.get $17 + local.get $18 end call $~lib/rt/stub/__retain global.set $std/operator-overloading/tmp @@ -3030,18 +3077,42 @@ call $~lib/builtins/abort unreachable end - global.get $std/operator-overloading/tmp block (result i32) - global.get $std/operator-overloading/incdec - global.get $std/operator-overloading/incdec - local.tee $17 - call $std/operator-overloading/Tester#postDec - local.tee $19 - call $~lib/rt/stub/__retainRelease - global.set $std/operator-overloading/incdec - local.get $17 + block (result i32) + block (result i32) + global.get $std/operator-overloading/incdec + local.tee $18 + call $std/operator-overloading/Tester#postDec + local.tee $19 + local.tee $20 + global.get $std/operator-overloading/incdec + local.tee $21 + i32.ne + if + local.get $20 + call $~lib/rt/stub/__retain + drop + local.get $21 + call $~lib/rt/stub/__release + end + local.get $20 + end + global.set $std/operator-overloading/incdec + local.get $18 + end + local.tee $21 + global.get $std/operator-overloading/tmp + local.tee $18 + i32.ne + if + local.get $21 + call $~lib/rt/stub/__retain + drop + local.get $18 + call $~lib/rt/stub/__release + end + local.get $21 end - call $~lib/rt/stub/__retainRelease global.set $std/operator-overloading/tmp global.get $std/operator-overloading/tmp i32.load @@ -3090,11 +3161,23 @@ i32.const 2 call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais1 - global.get $std/operator-overloading/ais1 - global.get $std/operator-overloading/ais1 - call $std/operator-overloading/TesterInlineStatic.postInc - local.tee $17 - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $std/operator-overloading/ais1 + call $std/operator-overloading/TesterInlineStatic.postInc + local.tee $21 + local.tee $20 + global.get $std/operator-overloading/ais1 + local.tee $18 + i32.ne + if + local.get $20 + call $~lib/rt/stub/__retain + drop + local.get $18 + call $~lib/rt/stub/__release + end + local.get $20 + end global.set $std/operator-overloading/ais1 i32.const 0 i32.const 2 @@ -3133,11 +3216,23 @@ i32.const 2 call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii1 - global.get $std/operator-overloading/aii1 - global.get $std/operator-overloading/aii1 - call $std/operator-overloading/TesterInlineInstance#postInc - local.tee $21 - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $std/operator-overloading/aii1 + call $std/operator-overloading/TesterInlineInstance#postInc + local.tee $18 + local.tee $22 + global.get $std/operator-overloading/aii1 + local.tee $23 + i32.ne + if + local.get $22 + call $~lib/rt/stub/__retain + drop + local.get $23 + call $~lib/rt/stub/__release + end + local.get $22 + end global.set $std/operator-overloading/aii1 i32.const 0 i32.const 2 @@ -3218,9 +3313,9 @@ local.get $22 call $~lib/rt/stub/__release ) - (func $start (; 42 ;) (type $FUNCSIG$v) + (func $start (; 40 ;) (type $FUNCSIG$v) call $start:std/operator-overloading ) - (func $null (; 43 ;) (type $FUNCSIG$v) + (func $null (; 41 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/pointer.untouched.wat b/tests/compiler/std/pointer.untouched.wat index 7f95cef5..d48e7ceb 100644 --- a/tests/compiler/std/pointer.untouched.wat +++ b/tests/compiler/std/pointer.untouched.wat @@ -62,16 +62,13 @@ i32.add call $~lib/rt/stub/__retain ) - (func $~lib/rt/stub/__retainRelease (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - ) - (func $std/pointer/Pointer#dec (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/pointer/Pointer#dec (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 8 i32.sub call $~lib/rt/stub/__retain ) - (func $~lib/memory/memory.fill (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 7 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -334,7 +331,7 @@ end end ) - (func $~lib/util/memory/memcpy (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1525,7 +1522,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1752,7 +1749,7 @@ end end ) - (func $std/pointer/Pointer#set:value (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/pointer/Pointer#set:value (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $1 i32.const 0 i32.eq @@ -1768,7 +1765,7 @@ call $~lib/memory/memory.copy end ) - (func $std/pointer/Pointer#set (; 12 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) + (func $std/pointer/Pointer#set (; 11 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) local.get $0 local.get $1 i32.const 4 @@ -1777,12 +1774,12 @@ local.get $2 f32.store ) - (func $std/pointer/Pointer#set:value (; 13 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) + (func $std/pointer/Pointer#set:value (; 12 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) local.get $0 local.get $1 f32.store ) - (func $start:std/pointer (; 14 ;) (type $FUNCSIG$v) + (func $start:std/pointer (; 13 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -1961,11 +1958,23 @@ unreachable end block (result i32) - global.get $std/pointer/one - global.get $std/pointer/one - call $std/pointer/Pointer#inc - local.tee $4 - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $std/pointer/one + call $std/pointer/Pointer#inc + local.tee $4 + local.tee $5 + global.get $std/pointer/one + local.tee $6 + i32.ne + if + local.get $5 + call $~lib/rt/stub/__retain + drop + local.get $6 + call $~lib/rt/stub/__release + end + local.get $5 + end global.set $std/pointer/one global.get $std/pointer/one end @@ -2015,17 +2024,41 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/two - global.get $std/pointer/two - call $std/pointer/Pointer#dec - local.tee $5 - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $std/pointer/two + call $std/pointer/Pointer#dec + local.tee $5 + local.tee $6 + global.get $std/pointer/two + local.tee $7 + i32.ne + if + local.get $6 + call $~lib/rt/stub/__retain + drop + local.get $7 + call $~lib/rt/stub/__release + end + local.get $6 + end global.set $std/pointer/two - global.get $std/pointer/two - global.get $std/pointer/two - call $std/pointer/Pointer#dec - local.tee $6 - call $~lib/rt/stub/__retainRelease + block (result i32) + global.get $std/pointer/two + call $std/pointer/Pointer#dec + local.tee $6 + local.tee $7 + global.get $std/pointer/two + local.tee $8 + i32.ne + if + local.get $7 + call $~lib/rt/stub/__retain + drop + local.get $8 + call $~lib/rt/stub/__release + end + local.get $7 + end global.set $std/pointer/two block $std/pointer/Pointer#get:offset|inlined.7 (result i32) global.get $std/pointer/two @@ -2405,9 +2438,9 @@ local.get $7 call $~lib/rt/stub/__release ) - (func $start (; 15 ;) (type $FUNCSIG$v) + (func $start (; 14 ;) (type $FUNCSIG$v) call $start:std/pointer ) - (func $null (; 16 ;) (type $FUNCSIG$v) + (func $null (; 15 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index a758547c..f6846861 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -1683,7 +1683,7 @@ end end ) - (func $~lib/rt/pure/__skippedRelease (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.const 508 i32.gt_u @@ -1693,25 +1693,29 @@ i32.sub call $~lib/rt/pure/decrement end - local.get $1 ) (func $~lib/set/Set#clear (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - local.get $0 - i32.load + (local $1 i32) i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.set $1 + local.get $0 + i32.load + call $~lib/rt/pure/__release + local.get $0 + local.get $1 i32.store local.get $0 i32.const 3 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=8 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.set $1 + local.get $0 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $0 + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -1814,44 +1818,7 @@ i32.const 0 i32.ne ) - (func $~lib/rt/pure/__retainRelease (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.ne - if - local.get $1 - i32.const 508 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - i32.const 508 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - end - local.get $1 - ) - (func $~lib/rt/pure/__release (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - i32.const 508 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - ) - (func $~lib/set/Set#rehash (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1862,12 +1829,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -1876,7 +1843,7 @@ i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 local.tee $2 @@ -1886,8 +1853,8 @@ i32.shl i32.add local.set $7 - local.get $5 - local.set $3 + local.get $3 + local.set $4 loop $continue|0 local.get $2 local.get $7 @@ -1899,11 +1866,11 @@ i32.and i32.eqz if - local.get $3 + local.get $4 local.get $2 i32.load8_s i32.store8 - local.get $3 + local.get $4 local.get $2 i32.load8_s call $~lib/util/hash/hash8 @@ -1911,18 +1878,18 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load i32.store offset=4 local.get $8 - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 8 i32.add - local.set $3 + local.set $4 end local.get $2 i32.const 8 @@ -1932,19 +1899,37 @@ end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -1953,12 +1938,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2045,7 +2030,7 @@ i32.store end ) - (func $~lib/set/Set#delete (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $1 @@ -2108,7 +2093,7 @@ call $~lib/set/Set#rehash end ) - (func $std/set/testNumeric (; 36 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 34 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/set/Set#constructor @@ -2355,7 +2340,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#constructor (; 37 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 35 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 4 @@ -2383,7 +2368,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#has (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -2394,7 +2379,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 39 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2405,12 +2390,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -2419,7 +2404,7 @@ i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 local.tee $2 @@ -2429,8 +2414,8 @@ i32.shl i32.add local.set $7 - local.get $5 - local.set $3 + local.get $3 + local.set $4 loop $continue|0 local.get $2 local.get $7 @@ -2442,11 +2427,11 @@ i32.and i32.eqz if - local.get $3 + local.get $4 local.get $2 i32.load8_u i32.store8 - local.get $3 + local.get $4 local.get $2 i32.load8_u call $~lib/util/hash/hash8 @@ -2454,18 +2439,18 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load i32.store offset=4 local.get $8 - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 8 i32.add - local.set $3 + local.set $4 end local.get $2 i32.const 8 @@ -2475,19 +2460,37 @@ end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -2496,12 +2499,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 40 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2586,7 +2589,7 @@ i32.store end ) - (func $~lib/set/Set#delete (; 41 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (; 39 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $1 @@ -2647,7 +2650,7 @@ call $~lib/set/Set#rehash end ) - (func $std/set/testNumeric (; 42 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 40 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/set/Set#constructor @@ -2894,7 +2897,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#constructor (; 43 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 41 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 5 @@ -2922,7 +2925,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash16 (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash16 (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 255 i32.and @@ -2937,7 +2940,7 @@ i32.const 16777619 i32.mul ) - (func $~lib/set/Set#find (; 45 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.load local.get $0 @@ -2980,7 +2983,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -2993,7 +2996,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 47 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 45 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3004,12 +3007,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -3018,7 +3021,7 @@ i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 local.tee $2 @@ -3028,8 +3031,8 @@ i32.shl i32.add local.set $7 - local.get $5 - local.set $3 + local.get $3 + local.set $4 loop $continue|0 local.get $2 local.get $7 @@ -3041,11 +3044,11 @@ i32.and i32.eqz if - local.get $3 + local.get $4 local.get $2 i32.load16_s i32.store16 - local.get $3 + local.get $4 local.get $2 i32.load16_s call $~lib/util/hash/hash16 @@ -3053,18 +3056,18 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load i32.store offset=4 local.get $8 - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 8 i32.add - local.set $3 + local.set $4 end local.get $2 i32.const 8 @@ -3074,19 +3077,37 @@ end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -3095,12 +3116,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 48 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 46 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3187,7 +3208,7 @@ i32.store end ) - (func $~lib/set/Set#delete (; 49 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (; 47 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $1 @@ -3250,7 +3271,7 @@ call $~lib/set/Set#rehash end ) - (func $std/set/testNumeric (; 50 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 48 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/set/Set#constructor @@ -3497,7 +3518,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#constructor (; 51 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 49 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 6 @@ -3525,7 +3546,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#has (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -3536,7 +3557,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3547,12 +3568,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -3561,7 +3582,7 @@ i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 local.tee $2 @@ -3571,8 +3592,8 @@ i32.shl i32.add local.set $7 - local.get $5 - local.set $3 + local.get $3 + local.set $4 loop $continue|0 local.get $2 local.get $7 @@ -3584,11 +3605,11 @@ i32.and i32.eqz if - local.get $3 + local.get $4 local.get $2 i32.load16_u i32.store16 - local.get $3 + local.get $4 local.get $2 i32.load16_u call $~lib/util/hash/hash16 @@ -3596,18 +3617,18 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load i32.store offset=4 local.get $8 - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 8 i32.add - local.set $3 + local.set $4 end local.get $2 i32.const 8 @@ -3617,19 +3638,37 @@ end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -3638,12 +3677,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 54 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3728,7 +3767,7 @@ i32.store end ) - (func $~lib/set/Set#delete (; 55 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $1 @@ -3789,7 +3828,7 @@ call $~lib/set/Set#rehash end ) - (func $std/set/testNumeric (; 56 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 54 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/set/Set#constructor @@ -4036,7 +4075,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#constructor (; 57 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 55 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 7 @@ -4064,7 +4103,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash32 (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash32 (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 255 i32.and @@ -4095,7 +4134,7 @@ i32.const 16777619 i32.mul ) - (func $~lib/set/Set#find (; 59 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.load local.get $0 @@ -4136,7 +4175,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 local.get $1 @@ -4145,7 +4184,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 61 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 59 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4156,12 +4195,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -4170,7 +4209,7 @@ i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 local.tee $2 @@ -4180,8 +4219,8 @@ i32.shl i32.add local.set $7 - local.get $5 - local.set $3 + local.get $3 + local.set $4 loop $continue|0 local.get $2 local.get $7 @@ -4193,11 +4232,11 @@ i32.and i32.eqz if - local.get $3 + local.get $4 local.get $2 i32.load i32.store - local.get $3 + local.get $4 local.get $2 i32.load call $~lib/util/hash/hash32 @@ -4205,18 +4244,18 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load i32.store offset=4 local.get $8 - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 8 i32.add - local.set $3 + local.set $4 end local.get $2 i32.const 8 @@ -4226,19 +4265,37 @@ end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -4247,12 +4304,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 62 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 60 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4335,7 +4392,7 @@ i32.store end ) - (func $~lib/set/Set#delete (; 63 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (; 61 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $1 @@ -4394,7 +4451,7 @@ call $~lib/set/Set#rehash end ) - (func $std/set/testNumeric (; 64 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 62 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/set/Set#constructor @@ -4641,7 +4698,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#constructor (; 65 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 63 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 8 @@ -4669,7 +4726,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $std/set/testNumeric (; 66 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 64 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) call $~lib/set/Set#constructor @@ -4916,23 +4973,28 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#clear (; 67 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - local.get $0 - i32.load + (func $~lib/set/Set#clear (; 65 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.set $1 + local.get $0 + i32.load + call $~lib/rt/pure/__release + local.get $0 + local.get $1 i32.store local.get $0 i32.const 3 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=8 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.set $1 + local.get $0 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $0 + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -4944,7 +5006,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 68 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 66 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 9 @@ -4972,7 +5034,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash64 (; 69 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/hash/hash64 (; 67 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i32.wrap_i64 @@ -5038,7 +5100,7 @@ i32.const 16777619 i32.mul ) - (func $~lib/set/Set#find (; 70 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 68 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) local.get $0 i32.load local.get $0 @@ -5079,7 +5141,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 71 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/set/Set#has (; 69 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) local.get $0 local.get $1 local.get $1 @@ -5088,7 +5150,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 72 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 70 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5099,12 +5161,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -5113,7 +5175,7 @@ i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 local.tee $2 @@ -5123,8 +5185,8 @@ i32.shl i32.add local.set $7 - local.get $5 - local.set $3 + local.get $3 + local.set $4 loop $continue|0 local.get $2 local.get $7 @@ -5136,11 +5198,11 @@ i32.and i32.eqz if - local.get $3 + local.get $4 local.get $2 i64.load i64.store - local.get $3 + local.get $4 local.get $2 i64.load call $~lib/util/hash/hash64 @@ -5148,18 +5210,18 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load i32.store offset=8 local.get $8 - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 16 i32.add - local.set $3 + local.set $4 end local.get $2 i32.const 16 @@ -5169,19 +5231,37 @@ end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -5190,12 +5270,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 73 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) + (func $~lib/set/Set#add (; 71 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5278,7 +5358,7 @@ i32.store end ) - (func $~lib/set/Set#delete (; 74 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) + (func $~lib/set/Set#delete (; 72 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) local.get $0 @@ -5338,7 +5418,7 @@ call $~lib/set/Set#rehash end ) - (func $std/set/testNumeric (; 75 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 73 ;) (type $FUNCSIG$v) (local $0 i64) (local $1 i32) call $~lib/set/Set#constructor @@ -5585,7 +5665,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#constructor (; 76 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 74 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 10 @@ -5613,7 +5693,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $std/set/testNumeric (; 77 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 75 ;) (type $FUNCSIG$v) (local $0 i64) (local $1 i32) call $~lib/set/Set#constructor @@ -5860,7 +5940,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#constructor (; 78 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 76 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 11 @@ -5888,7 +5968,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 79 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 77 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) local.get $0 i32.load local.get $0 @@ -5929,7 +6009,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 80 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/set/Set#has (; 78 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) local.get $0 local.get $1 local.get $1 @@ -5939,7 +6019,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 81 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 79 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5950,12 +6030,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -5964,7 +6044,7 @@ i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 local.tee $2 @@ -5974,8 +6054,8 @@ i32.shl i32.add local.set $7 - local.get $5 - local.set $3 + local.get $3 + local.set $4 loop $continue|0 local.get $2 local.get $7 @@ -5987,11 +6067,11 @@ i32.and i32.eqz if - local.get $3 + local.get $4 local.get $2 f32.load f32.store - local.get $3 + local.get $4 local.get $2 f32.load i32.reinterpret_f32 @@ -6000,18 +6080,18 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load i32.store offset=4 local.get $8 - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 8 i32.add - local.set $3 + local.set $4 end local.get $2 i32.const 8 @@ -6021,19 +6101,37 @@ end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -6042,12 +6140,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 82 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) + (func $~lib/set/Set#add (; 80 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6131,7 +6229,7 @@ i32.store end ) - (func $~lib/set/Set#delete (; 83 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) + (func $~lib/set/Set#delete (; 81 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) local.get $0 @@ -6192,7 +6290,7 @@ call $~lib/set/Set#rehash end ) - (func $std/set/testNumeric (; 84 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 82 ;) (type $FUNCSIG$v) (local $0 f32) (local $1 i32) call $~lib/set/Set#constructor @@ -6439,7 +6537,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#constructor (; 85 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/set/Set#constructor (; 83 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) i32.const 24 i32.const 12 @@ -6467,7 +6565,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 86 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 84 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) local.get $0 i32.load local.get $0 @@ -6508,7 +6606,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 87 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/set/Set#has (; 85 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) local.get $0 local.get $1 local.get $1 @@ -6518,7 +6616,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 88 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 86 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6529,12 +6627,12 @@ local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - local.get $2 + local.set $5 + local.get $3 f64.convert_i32_s f64.const 2.6666666666666665 f64.mul @@ -6543,7 +6641,7 @@ i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.set $3 local.get $0 i32.load offset=8 local.tee $2 @@ -6553,8 +6651,8 @@ i32.shl i32.add local.set $7 - local.get $5 - local.set $3 + local.get $3 + local.set $4 loop $continue|0 local.get $2 local.get $7 @@ -6566,11 +6664,11 @@ i32.and i32.eqz if - local.get $3 + local.get $4 local.get $2 f64.load f64.store - local.get $3 + local.get $4 local.get $2 f64.load i64.reinterpret_f64 @@ -6579,18 +6677,18 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load i32.store offset=8 local.get $8 - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 16 i32.add - local.set $3 + local.set $4 end local.get $2 i32.const 16 @@ -6600,19 +6698,37 @@ end end local.get $0 - local.get $0 i32.load - local.get $4 - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $5 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $5 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $0 i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $1 + local.get $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 i32.store offset=8 local.get $0 local.get $6 @@ -6621,12 +6737,12 @@ local.get $0 i32.load offset=20 i32.store offset=16 - local.get $4 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 89 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64) + (func $~lib/set/Set#add (; 87 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6710,7 +6826,7 @@ i32.store end ) - (func $~lib/set/Set#delete (; 90 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64) + (func $~lib/set/Set#delete (; 88 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64) (local $2 i32) (local $3 i32) local.get $0 @@ -6771,7 +6887,7 @@ call $~lib/set/Set#rehash end ) - (func $std/set/testNumeric (; 91 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 89 ;) (type $FUNCSIG$v) (local $0 f64) (local $1 i32) call $~lib/set/Set#constructor @@ -7018,7 +7134,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $start (; 92 ;) (type $FUNCSIG$v) + (func $start (; 90 ;) (type $FUNCSIG$v) call $std/set/testNumeric call $std/set/testNumeric call $std/set/testNumeric @@ -7030,7 +7146,7 @@ call $std/set/testNumeric call $std/set/testNumeric ) - (func $~lib/rt/pure/markGray (; 93 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 91 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -7054,7 +7170,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 94 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 92 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -7067,7 +7183,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 95 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 93 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -7101,7 +7217,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 96 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 94 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -7129,7 +7245,7 @@ local.get $0 call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/pure/__visit (; 97 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 508 i32.lt_u @@ -7239,7 +7355,7 @@ unreachable end ) - (func $~lib/rt/__visit_members (; 98 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 96 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $folding-inner0 block $switch$1$default block $switch$1$case$4 @@ -7273,7 +7389,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $null (; 99 ;) (type $FUNCSIG$v) + (func $null (; 97 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index 5d88a2ea..28ed9c80 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -3379,7 +3379,7 @@ end end ) - (func $~lib/rt/pure/__skippedRelease (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/pure/__release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 global.get $~lib/heap/HEAP_BASE i32.gt_u @@ -3389,18 +3389,22 @@ i32.sub call $~lib/rt/pure/decrement end - local.get $1 ) (func $~lib/set/Set#clear (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -3408,13 +3412,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -3537,47 +3545,7 @@ i32.const 0 i32.ne ) - (func $~lib/rt/pure/__retainRelease (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - i32.ne - if - global.get $~lib/heap/HEAP_BASE - local.set $2 - local.get $1 - local.get $2 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - local.get $2 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - end - local.get $1 - ) - (func $~lib/rt/pure/__release (; 33 ;) (type $FUNCSIG$vi) (param $0 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/pure/decrement - end - ) - (func $~lib/set/Set#rehash (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3690,20 +3658,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -3717,7 +3709,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3816,11 +3808,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3896,7 +3888,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 38 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 36 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4173,16 +4165,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#clear (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 37 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -4190,13 +4187,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -4208,7 +4209,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -4242,7 +4243,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 41 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 39 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -4291,7 +4292,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -4308,7 +4309,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 43 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 41 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4421,20 +4422,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -4448,7 +4473,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 42 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4545,11 +4570,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4623,7 +4648,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 47 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 45 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4900,16 +4925,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#clear (; 48 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 46 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -4917,13 +4947,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -4935,7 +4969,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -4969,7 +5003,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash16 (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash16 (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const -2128831035 local.set $1 @@ -4991,7 +5025,7 @@ local.set $1 local.get $1 ) - (func $~lib/set/Set#find (; 51 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 49 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -5042,7 +5076,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -5061,7 +5095,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5174,20 +5208,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -5201,7 +5259,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 54 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5300,11 +5358,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 53 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 56 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 54 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5380,7 +5438,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 57 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 55 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5657,16 +5715,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#clear (; 58 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 56 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -5674,13 +5737,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -5692,7 +5759,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 59 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 57 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -5726,7 +5793,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 60 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 58 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -5775,7 +5842,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 61 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -5792,7 +5859,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 62 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 60 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5905,20 +5972,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -5932,7 +6023,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 63 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 61 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6029,11 +6120,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 64 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 62 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 63 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6107,7 +6198,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 66 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 64 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -6384,16 +6475,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#clear (; 67 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 65 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -6401,13 +6497,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -6419,7 +6519,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 68 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 66 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -6453,7 +6553,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash32 (; 69 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash32 (; 67 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const -2128831035 local.set $1 @@ -6495,7 +6595,7 @@ local.set $1 local.get $1 ) - (func $~lib/set/Set#find (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -6542,7 +6642,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 71 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 69 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -6557,7 +6657,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 72 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 70 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6670,20 +6770,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -6697,7 +6821,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 73 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 71 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6792,11 +6916,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 74 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 72 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 75 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 73 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6868,7 +6992,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 76 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 74 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -7145,16 +7269,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#clear (; 77 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 75 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -7162,13 +7291,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -7180,7 +7313,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 78 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 76 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -7214,7 +7347,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 77 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -7261,7 +7394,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 80 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#has (; 78 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -7276,7 +7409,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 81 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 79 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7389,20 +7522,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -7416,7 +7573,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 82 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (; 80 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7511,11 +7668,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 83 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 81 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 84 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#delete (; 82 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7587,7 +7744,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 85 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 83 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -7864,16 +8021,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#clear (; 86 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 84 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -7881,13 +8043,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -7899,7 +8065,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 87 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 85 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -7933,7 +8099,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/util/hash/hash64 (; 88 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/hash/hash64 (; 86 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8021,7 +8187,7 @@ local.set $3 local.get $3 ) - (func $~lib/set/Set#find (; 89 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 87 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -8068,7 +8234,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 90 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/set/Set#has (; 88 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) local.get $0 local.get $1 @@ -8083,7 +8249,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 91 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 89 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8197,20 +8363,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $12 + end i32.store offset=8 local.get $0 local.get $4 @@ -8224,7 +8414,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 92 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) + (func $~lib/set/Set#add (; 90 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -8320,11 +8510,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 93 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 91 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 94 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/set/Set#delete (; 92 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) (local $4 i32) @@ -8397,7 +8587,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 95 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 93 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -8674,16 +8864,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#clear (; 96 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 94 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -8691,13 +8886,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -8709,7 +8908,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 97 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 95 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -8743,7 +8942,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 98 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 96 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -8790,7 +8989,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 99 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/set/Set#has (; 97 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) local.get $0 local.get $1 @@ -8805,7 +9004,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 100 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 98 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8919,20 +9118,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $12 + end i32.store offset=8 local.get $0 local.get $4 @@ -8946,7 +9169,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 101 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) + (func $~lib/set/Set#add (; 99 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -9042,11 +9265,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 102 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 100 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 103 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) + (func $~lib/set/Set#delete (; 101 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) (local $2 i64) (local $3 i32) (local $4 i32) @@ -9119,7 +9342,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 104 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 102 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -9396,16 +9619,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#clear (; 105 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 103 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -9413,13 +9641,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -9431,7 +9663,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 106 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 104 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -9465,7 +9697,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 107 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 105 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -9512,7 +9744,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 108 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/set/Set#has (; 106 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) (local $2 f32) local.get $0 local.get $1 @@ -9528,7 +9760,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 109 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 107 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9643,20 +9875,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $12 + end i32.store offset=8 local.get $0 local.get $4 @@ -9670,7 +9926,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 110 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) + (func $~lib/set/Set#add (; 108 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -9767,11 +10023,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 111 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 109 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 112 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) + (func $~lib/set/Set#delete (; 110 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -9845,7 +10101,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 113 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 111 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f32) i32.const 0 @@ -10122,16 +10378,21 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#clear (; 114 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#clear (; 112 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -10139,13 +10400,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/pure/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -10157,7 +10422,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/set/Set#constructor (; 115 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#constructor (; 113 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -10191,7 +10456,7 @@ call $~lib/set/Set#clear local.get $0 ) - (func $~lib/set/Set#find (; 116 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/set/Set#find (; 114 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -10238,7 +10503,7 @@ end i32.const 0 ) - (func $~lib/set/Set#has (; 117 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/set/Set#has (; 115 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 f64) local.get $0 local.get $1 @@ -10254,7 +10519,7 @@ i32.const 0 i32.ne ) - (func $~lib/set/Set#rehash (; 118 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (; 116 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10369,20 +10634,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/pure/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release + end + local.get $12 + end i32.store offset=8 local.get $0 local.get $4 @@ -10396,7 +10685,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/set/Set#add (; 119 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64) + (func $~lib/set/Set#add (; 117 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64) (local $2 f64) (local $3 i32) (local $4 i32) @@ -10493,11 +10782,11 @@ i32.store end ) - (func $~lib/set/Set#get:size (; 120 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/set/Set#get:size (; 118 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=20 ) - (func $~lib/set/Set#delete (; 121 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/set/Set#delete (; 119 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 f64) (local $3 i32) (local $4 i32) @@ -10571,7 +10860,7 @@ end i32.const 1 ) - (func $std/set/testNumeric (; 122 ;) (type $FUNCSIG$v) + (func $std/set/testNumeric (; 120 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f64) i32.const 0 @@ -10848,7 +11137,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:std/set (; 123 ;) (type $FUNCSIG$v) + (func $start:std/set (; 121 ;) (type $FUNCSIG$v) call $std/set/testNumeric call $std/set/testNumeric call $std/set/testNumeric @@ -10860,10 +11149,10 @@ call $std/set/testNumeric call $std/set/testNumeric ) - (func $start (; 124 ;) (type $FUNCSIG$v) + (func $start (; 122 ;) (type $FUNCSIG$v) call $start:std/set ) - (func $~lib/rt/pure/markGray (; 125 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 123 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -10890,7 +11179,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 126 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 124 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -10907,7 +11196,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 127 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 125 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -10944,7 +11233,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 128 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 126 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -10973,7 +11262,7 @@ local.get $0 call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/pure/__visit (; 129 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 127 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -11127,7 +11416,7 @@ end end ) - (func $~lib/set/Set#__visit_impl (; 130 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#__visit_impl (; 128 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -11140,7 +11429,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/set/Set#__visit_impl (; 131 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#__visit_impl (; 129 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -11153,7 +11442,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/set/Set#__visit_impl (; 132 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#__visit_impl (; 130 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -11166,7 +11455,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/set/Set#__visit_impl (; 133 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#__visit_impl (; 131 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -11179,7 +11468,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/set/Set#__visit_impl (; 134 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#__visit_impl (; 132 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -11192,7 +11481,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/set/Set#__visit_impl (; 135 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#__visit_impl (; 133 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -11205,7 +11494,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/set/Set#__visit_impl (; 136 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#__visit_impl (; 134 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -11218,7 +11507,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/set/Set#__visit_impl (; 137 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#__visit_impl (; 135 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -11231,7 +11520,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/set/Set#__visit_impl (; 138 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#__visit_impl (; 136 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -11244,7 +11533,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/set/Set#__visit_impl (; 139 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/set/Set#__visit_impl (; 137 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load @@ -11257,7 +11546,7 @@ local.get $1 call $~lib/rt/pure/__visit ) - (func $~lib/rt/__visit_members (; 140 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 138 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block end @@ -11494,6 +11783,6 @@ unreachable end ) - (func $null (; 141 ;) (type $FUNCSIG$v) + (func $null (; 139 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 94ac878e..4138d7d1 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1815,33 +1815,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/rt/pure/__retainRelease (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.ne - if - local.get $1 - i32.const 6564 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - i32.const 6564 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - end - local.get $1 - ) - (func $~lib/string/String#startsWith (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#startsWith (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1891,7 +1865,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/string/String#endsWith (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#endsWith (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) i32.const 576 @@ -1939,7 +1913,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/string/String#indexOf (; 33 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#indexOf (; 32 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1962,7 +1936,15 @@ if local.get $1 i32.const 552 - call $~lib/rt/pure/__retainRelease + i32.ne + if + i32.const 552 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + i32.const 552 local.set $1 end local.get $1 @@ -2033,7 +2015,7 @@ call $~lib/rt/pure/__release i32.const -1 ) - (func $~lib/memory/memory.repeat (; 34 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/memory/memory.repeat (; 33 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) local.get $2 local.get $3 @@ -2058,7 +2040,7 @@ end end ) - (func $~lib/string/String#padStart (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#padStart (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2160,7 +2142,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/string/String#padEnd (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#padEnd (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2263,7 +2245,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/string/String#lastIndexOf (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#lastIndexOf (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -2284,7 +2266,15 @@ if local.get $1 i32.const 552 - call $~lib/rt/pure/__retainRelease + i32.ne + if + i32.const 552 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + i32.const 552 local.set $1 end local.get $0 @@ -2354,7 +2344,7 @@ call $~lib/rt/pure/__release i32.const -1 ) - (func $~lib/util/string/parse (; 38 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/util/string/parse (; 37 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2584,7 +2574,7 @@ call $~lib/rt/pure/__release f64.const nan:0x8000000000000 ) - (func $~lib/string/parseInt (; 39 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/string/parseInt (; 38 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 f64) local.get $0 call $~lib/rt/pure/__retain @@ -2596,7 +2586,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/string/parseFloat (; 40 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/string/parseFloat (; 39 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2770,7 +2760,7 @@ call $~lib/rt/pure/__release f64.const nan:0x8000000000000 ) - (func $~lib/string/String#concat (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2782,7 +2772,15 @@ if local.get $1 i32.const 552 - call $~lib/rt/pure/__retainRelease + i32.ne + if + i32.const 552 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end + i32.const 552 local.set $1 end local.get $0 @@ -2825,7 +2823,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -2846,7 +2844,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__ne (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -2865,7 +2863,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__gt (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gt (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2936,7 +2934,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__lt (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lt (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3006,7 +3004,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__gte (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gte (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3025,7 +3023,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__lte (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String.__lte (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const 120 call $~lib/rt/pure/__retain @@ -3044,7 +3042,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/string/String#repeat (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#repeat (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3115,7 +3113,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#slice (; 49 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#slice (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 call $~lib/string/String#get:length @@ -3190,7 +3188,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/rt/__allocArray (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/rt/__allocArray (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3218,7 +3216,7 @@ i32.store offset=12 local.get $1 ) - (func $~lib/rt/tlsf/reallocateBlock (; 51 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 50 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3332,7 +3330,7 @@ call $~lib/rt/tlsf/insertBlock local.get $3 ) - (func $~lib/rt/tlsf/__realloc (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__realloc (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -3368,7 +3366,7 @@ i32.const 16 i32.add ) - (func $~lib/memory/memory.fill (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/memory/memory.fill (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $~lib/util/memory/memset|inlined.0 local.get $1 @@ -3579,7 +3577,7 @@ end end ) - (func $~lib/array/ensureSize (; 54 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/ensureSize (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3634,9 +3632,10 @@ i32.store offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#push (; 55 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#push (; 54 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -3655,18 +3654,25 @@ i32.shl i32.add local.tee $2 - local.get $2 i32.load + local.tee $4 local.get $1 - call $~lib/rt/pure/__retainRelease - i32.store + i32.ne + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + call $~lib/rt/pure/__release + end local.get $0 local.get $3 i32.store offset=12 local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/string/String#split (; 56 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#split (; 55 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3888,19 +3894,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/rt/pure/__skippedRelease (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 6564 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - local.get $1 - ) - (func $~lib/array/Array<~lib/string/String>#__get (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 56 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -3936,7 +3930,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/util/number/decimalCount32 (; 59 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 57 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 2 local.get $0 @@ -3984,7 +3978,7 @@ i32.lt_u select ) - (func $~lib/util/number/utoa_simple (; 60 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 58 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -4010,7 +4004,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/itoa32 (; 61 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 59 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4053,7 +4047,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/utoa32 (; 62 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 60 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -4077,7 +4071,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/decimalCount64 (; 63 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 61 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) i32.const 11 i32.const 12 local.get $0 @@ -4125,7 +4119,7 @@ i64.lt_u select ) - (func $~lib/util/number/utoa_simple (; 64 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 62 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i64) loop $continue|0 local.get $1 @@ -4154,7 +4148,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/utoa64 (; 65 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 63 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4198,7 +4192,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa64 (; 66 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 64 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4265,7 +4259,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/genDigits (; 67 ;) (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 (; 65 ;) (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) @@ -4666,7 +4660,7 @@ local.get $6 end ) - (func $~lib/util/number/prettify (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -4917,7 +4911,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 69 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 67 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) @@ -5205,7 +5199,7 @@ local.get $10 i32.add ) - (func $~lib/string/String#substring (; 70 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 68 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5292,7 +5286,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/rt/tlsf/__free (; 71 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/tlsf/__free (; 69 ;) (type $FUNCSIG$vi) (param $0 i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -5325,7 +5319,7 @@ i32.sub call $~lib/rt/tlsf/freeBlock ) - (func $~lib/util/number/dtoa (; 72 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 70 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5381,7 +5375,7 @@ call $~lib/rt/tlsf/__free local.get $2 ) - (func $start:std/string (; 73 ;) (type $FUNCSIG$v) + (func $start:std/string (; 71 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5538,12 +5532,12 @@ i32.const -1 i32.const 0 global.get $std/string/str - local.tee $0 + local.tee $1 call $~lib/string/String#get:length i32.ge_u br_if $__inlined_func$~lib/string/String#charCodeAt drop - local.get $0 + local.get $1 i32.load16_u end i32.const 104 @@ -5595,7 +5589,7 @@ end i32.const 0 call $~lib/string/String.fromCharCode - local.tee $6 + local.tee $5 i32.const 384 call $~lib/string/String.__eq i32.eqz @@ -5609,7 +5603,7 @@ end i32.const 54 call $~lib/string/String.fromCharCode - local.tee $7 + local.tee $6 i32.const 432 call $~lib/string/String.__eq i32.eqz @@ -5623,7 +5617,7 @@ end i32.const 65590 call $~lib/string/String.fromCharCode - local.tee $8 + local.tee $7 i32.const 432 call $~lib/string/String.__eq i32.eqz @@ -5637,7 +5631,7 @@ end i32.const 0 call $~lib/string/String.fromCodePoint - local.tee $9 + local.tee $8 i32.const 384 call $~lib/string/String.__eq i32.eqz @@ -5651,7 +5645,7 @@ end i32.const 54 call $~lib/string/String.fromCodePoint - local.tee $10 + local.tee $9 i32.const 432 call $~lib/string/String.__eq i32.eqz @@ -5665,7 +5659,7 @@ end i32.const 119558 call $~lib/string/String.fromCodePoint - local.tee $11 + local.tee $10 i32.eqz if i32.const 504 @@ -5700,15 +5694,15 @@ global.get $std/string/str i32.const 608 call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 0 call $~lib/string/String#indexOf i32.const -1 i32.ne - local.set $1 - local.get $0 - call $~lib/rt/pure/__release + local.set $0 local.get $1 + call $~lib/rt/pure/__release + local.get $0 i32.eqz if i32.const 0 @@ -5722,7 +5716,7 @@ i32.const 0 i32.const 632 call $~lib/string/String#padStart - local.tee $12 + local.tee $11 global.get $std/string/str call $~lib/string/String.__eq i32.eqz @@ -5738,7 +5732,7 @@ i32.const 15 i32.const 632 call $~lib/string/String#padStart - local.tee $13 + local.tee $12 global.get $std/string/str call $~lib/string/String.__eq i32.eqz @@ -5754,7 +5748,7 @@ i32.const 3 i32.const 632 call $~lib/string/String#padStart - local.tee $14 + local.tee $13 i32.const 656 call $~lib/string/String.__eq i32.eqz @@ -5770,7 +5764,7 @@ i32.const 10 i32.const 120 call $~lib/string/String#padStart - local.tee $15 + local.tee $14 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -5786,7 +5780,7 @@ i32.const 100 i32.const 120 call $~lib/string/String#padStart - local.tee $16 + local.tee $15 i32.const 408 call $~lib/string/String.__eq i32.eqz @@ -5802,7 +5796,7 @@ i32.const 5 i32.const 632 call $~lib/string/String#padStart - local.tee $17 + local.tee $16 i32.const 704 call $~lib/string/String.__eq i32.eqz @@ -5818,7 +5812,7 @@ i32.const 6 i32.const 736 call $~lib/string/String#padStart - local.tee $18 + local.tee $17 i32.const 760 call $~lib/string/String.__eq i32.eqz @@ -5834,7 +5828,7 @@ i32.const 8 i32.const 736 call $~lib/string/String#padStart - local.tee $19 + local.tee $18 i32.const 792 call $~lib/string/String.__eq i32.eqz @@ -5850,7 +5844,7 @@ i32.const 0 i32.const 632 call $~lib/string/String#padEnd - local.tee $20 + local.tee $19 global.get $std/string/str call $~lib/string/String.__eq i32.eqz @@ -5866,7 +5860,7 @@ i32.const 15 i32.const 632 call $~lib/string/String#padEnd - local.tee $21 + local.tee $20 global.get $std/string/str call $~lib/string/String.__eq i32.eqz @@ -5882,7 +5876,7 @@ i32.const 3 i32.const 632 call $~lib/string/String#padEnd - local.tee $22 + local.tee $21 i32.const 656 call $~lib/string/String.__eq i32.eqz @@ -5898,7 +5892,7 @@ i32.const 10 i32.const 120 call $~lib/string/String#padEnd - local.tee $23 + local.tee $22 i32.const 120 call $~lib/string/String.__eq i32.eqz @@ -5914,7 +5908,7 @@ i32.const 100 i32.const 120 call $~lib/string/String#padEnd - local.tee $24 + local.tee $23 i32.const 408 call $~lib/string/String.__eq i32.eqz @@ -5930,7 +5924,7 @@ i32.const 5 i32.const 632 call $~lib/string/String#padEnd - local.tee $25 + local.tee $24 i32.const 824 call $~lib/string/String.__eq i32.eqz @@ -5946,7 +5940,7 @@ i32.const 6 i32.const 680 call $~lib/string/String#padEnd - local.tee $26 + local.tee $25 i32.const 856 call $~lib/string/String.__eq i32.eqz @@ -5962,7 +5956,7 @@ i32.const 8 i32.const 680 call $~lib/string/String#padEnd - local.tee $27 + local.tee $26 i32.const 888 call $~lib/string/String.__eq i32.eqz @@ -6416,9 +6410,9 @@ i32.const 408 i32.const 1344 call $~lib/string/String.__concat - local.tee $1 - call $~lib/rt/pure/__retain local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 i32.const 1368 call $~lib/string/String.__eq i32.eqz @@ -6430,7 +6424,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 408 call $~lib/string/String.__ne i32.eqz @@ -6442,10 +6436,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 120 i32.const 120 call $~lib/string/String.__eq @@ -6787,17 +6781,17 @@ end i32.const 65377 call $~lib/string/String.fromCodePoint - local.tee $0 + local.tee $1 i32.const 55296 call $~lib/string/String.fromCodePoint - local.tee $1 + local.tee $0 i32.const 56322 call $~lib/string/String.fromCodePoint - local.tee $3 + local.tee $2 call $~lib/string/String.__concat - local.tee $4 + local.tee $3 call $~lib/rt/pure/__retain - local.tee $5 + local.tee $4 call $~lib/string/String.__gt i32.eqz if @@ -6808,16 +6802,16 @@ call $~lib/builtins/abort unreachable end + local.get $1 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release i32.const 736 call $~lib/string/String#get:length i32.const 3 @@ -6863,7 +6857,7 @@ i32.const 408 i32.const 1 call $~lib/string/String#repeat - local.tee $5 + local.tee $27 i32.const 408 call $~lib/string/String.__eq i32.eqz @@ -6966,8 +6960,17 @@ unreachable end global.get $std/string/str + local.tee $1 + i32.const 1944 + i32.ne + if + i32.const 1944 + call $~lib/rt/pure/__retain + drop + local.get $1 + call $~lib/rt/pure/__release + end i32.const 1944 - call $~lib/rt/pure/__retainRelease global.set $std/string/str global.get $std/string/str i32.const 0 @@ -7081,12 +7084,13 @@ call $~lib/builtins/abort unreachable end - i32.const 0 i32.const 120 i32.const 0 call $~lib/string/String#split - call $~lib/rt/pure/__skippedRelease - local.tee $1 + local.set $1 + i32.const 0 + call $~lib/rt/pure/__release + local.get $1 i32.load offset=12 i32.const 1 i32.eq @@ -7114,12 +7118,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 i32.const 120 i32.const 120 call $~lib/string/String#split - call $~lib/rt/pure/__skippedRelease - local.tee $0 + local.set $0 + local.get $1 + call $~lib/rt/pure/__release + local.get $0 i32.load offset=12 if i32.const 0 @@ -7129,24 +7134,25 @@ call $~lib/builtins/abort unreachable end - local.get $0 i32.const 120 i32.const 920 call $~lib/string/String#split - call $~lib/rt/pure/__skippedRelease - local.tee $1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 i32.load offset=12 i32.const 1 i32.eq if - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $2 + local.tee $1 i32.const 120 call $~lib/string/String.__eq local.set $0 - local.get $2 + local.get $1 call $~lib/rt/pure/__release else i32.const 0 @@ -7162,12 +7168,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 i32.const 2320 i32.const 2352 call $~lib/string/String#split - call $~lib/rt/pure/__skippedRelease - local.tee $1 + local.set $1 + local.get $2 + call $~lib/rt/pure/__release + local.get $1 i32.load offset=12 i32.const 1 i32.eq @@ -7195,11 +7202,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 i32.const 2320 i32.const 920 call $~lib/string/String#split - call $~lib/rt/pure/__skippedRelease + local.set $0 + local.get $1 + call $~lib/rt/pure/__release + local.get $0 local.tee $1 i32.load offset=12 i32.const 3 @@ -7262,7 +7271,7 @@ call $~lib/rt/pure/__release i32.const 0 call $~lib/util/number/itoa32 - local.tee $0 + local.tee $1 i32.const 1040 call $~lib/string/String.__eq i32.eqz @@ -7276,7 +7285,7 @@ end i32.const 1 call $~lib/util/number/itoa32 - local.tee $1 + local.tee $0 i32.const 1064 call $~lib/string/String.__eq i32.eqz @@ -8536,6 +8545,8 @@ end global.get $std/string/str call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release local.get $7 @@ -8578,13 +8589,11 @@ call $~lib/rt/pure/__release local.get $26 call $~lib/rt/pure/__release - local.get $27 - call $~lib/rt/pure/__release local.get $28 call $~lib/rt/pure/__release local.get $29 call $~lib/rt/pure/__release - local.get $5 + local.get $27 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release @@ -8612,10 +8621,10 @@ call $~lib/rt/pure/__release local.get $40 call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $41 @@ -8795,11 +8804,11 @@ local.get $128 call $~lib/rt/pure/__release ) - (func $std/string/getString (; 74 ;) (type $FUNCSIG$i) (result i32) + (func $std/string/getString (; 72 ;) (type $FUNCSIG$i) (result i32) global.get $std/string/str call $~lib/rt/pure/__retain ) - (func $std/string/main (; 75 ;) (type $FUNCSIG$v) + (func $std/string/main (; 73 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -8808,7 +8817,7 @@ global.set $~lib/started end ) - (func $~lib/rt/pure/markGray (; 76 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 74 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -8832,7 +8841,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 77 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 75 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -8845,7 +8854,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 78 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 76 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -8879,7 +8888,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 79 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 77 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -8907,7 +8916,7 @@ local.get $0 call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/pure/__visit (; 80 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 78 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 6564 i32.lt_u @@ -9017,7 +9026,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 81 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 79 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -9048,7 +9057,7 @@ end end ) - (func $~lib/rt/__visit_members (; 82 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 80 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$5 @@ -9077,7 +9086,7 @@ call $~lib/rt/pure/__visit end ) - (func $null (; 83 ;) (type $FUNCSIG$v) + (func $null (; 81 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index b8208aaf..92e13cf1 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -3526,36 +3526,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/rt/pure/__retainRelease (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - i32.ne - if - global.get $~lib/heap/HEAP_BASE - local.set $2 - local.get $1 - local.get $2 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - local.get $2 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - end - local.get $1 - ) - (func $~lib/string/String#startsWith (; 33 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#startsWith (; 32 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3581,29 +3552,41 @@ i32.const 0 i32.eq if - local.get $1 - i32.const 552 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 552 + local.tee $3 + local.get $1 + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release + end + local.get $3 + end local.set $1 end local.get $2 - local.set $3 + local.set $5 local.get $0 call $~lib/string/String#get:length - local.set $4 - local.get $3 - local.tee $5 - i32.const 0 - local.tee $6 + local.set $6 local.get $5 - local.get $6 + local.tee $3 + i32.const 0 + local.tee $4 + local.get $3 + local.get $4 i32.gt_s select - local.tee $5 - local.get $4 - local.tee $6 - local.get $5 + local.tee $3 local.get $6 + local.tee $4 + local.get $3 + local.get $4 i32.lt_s select local.set $7 @@ -3613,14 +3596,14 @@ local.get $8 local.get $7 i32.add - local.get $4 + local.get $6 i32.gt_s if i32.const 0 - local.set $5 + local.set $3 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $3 return end local.get $0 @@ -3630,12 +3613,12 @@ local.get $8 call $~lib/util/string/compareImpl i32.eqz - local.set $5 + local.set $3 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $3 ) - (func $~lib/string/String#endsWith (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#endsWith (; 33 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3714,7 +3697,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/string/String#indexOf (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#indexOf (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3739,97 +3722,109 @@ i32.const 0 i32.eq if - local.get $1 - i32.const 552 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 552 + local.tee $3 + local.get $1 + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release + end + local.get $3 + end local.set $1 end local.get $1 call $~lib/string/String#get:length - local.set $3 - local.get $3 + local.set $5 + local.get $5 i32.eqz if i32.const 0 - local.set $4 + local.set $3 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $3 return end local.get $0 call $~lib/string/String#get:length - local.set $5 - local.get $5 + local.set $6 + local.get $6 i32.eqz if i32.const -1 - local.set $4 + local.set $3 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $3 return end local.get $2 - local.tee $4 + local.tee $3 i32.const 0 - local.tee $6 + local.tee $4 + local.get $3 local.get $4 - local.get $6 i32.gt_s select - local.tee $4 - local.get $5 - local.tee $6 - local.get $4 + local.tee $3 local.get $6 + local.tee $4 + local.get $3 + local.get $4 i32.lt_s select local.set $7 + local.get $6 local.get $5 - local.get $3 i32.sub - local.set $5 + local.set $6 block $break|0 local.get $7 - local.set $4 + local.set $3 loop $repeat|0 - local.get $4 - local.get $5 + local.get $3 + local.get $6 i32.le_s i32.eqz br_if $break|0 local.get $0 - local.get $4 + local.get $3 local.get $1 i32.const 0 - local.get $3 + local.get $5 call $~lib/util/string/compareImpl i32.eqz if - local.get $4 - local.set $6 + local.get $3 + local.set $4 local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $4 return end - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $repeat|0 unreachable end unreachable end i32.const -1 - local.set $4 + local.set $3 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $3 ) - (func $~lib/memory/memory.repeat (; 36 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/memory/memory.repeat (; 35 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) i32.const 0 @@ -3859,7 +3854,7 @@ end end ) - (func $~lib/string/String#padStart (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#padStart (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3971,7 +3966,7 @@ call $~lib/rt/pure/__release local.get $10 ) - (func $~lib/string/String#padEnd (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#padEnd (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4087,7 +4082,7 @@ call $~lib/rt/pure/__release local.get $10 ) - (func $~lib/string/String#lastIndexOf (; 39 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#lastIndexOf (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4112,95 +4107,107 @@ i32.const 0 i32.eq if - local.get $1 - i32.const 552 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 552 + local.tee $3 + local.get $1 + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release + end + local.get $3 + end local.set $1 end local.get $0 call $~lib/string/String#get:length - local.set $3 + local.set $5 local.get $1 call $~lib/string/String#get:length - local.set $4 - local.get $4 + local.set $6 + local.get $6 i32.eqz if - local.get $3 - local.set $5 + local.get $5 + local.set $3 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $3 return end - local.get $3 + local.get $5 i32.eqz if i32.const -1 - local.set $5 + local.set $3 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $3 return end local.get $2 - local.tee $5 + local.tee $3 i32.const 0 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.tee $5 + local.tee $4 local.get $3 local.get $4 - i32.sub - local.tee $6 + i32.gt_s + select + local.tee $3 local.get $5 local.get $6 + i32.sub + local.tee $4 + local.get $3 + local.get $4 i32.lt_s select local.set $7 block $break|0 local.get $7 - local.set $5 + local.set $3 loop $repeat|0 - local.get $5 + local.get $3 i32.const 0 i32.ge_s i32.eqz br_if $break|0 local.get $0 - local.get $5 + local.get $3 local.get $1 i32.const 0 - local.get $4 + local.get $6 call $~lib/util/string/compareImpl i32.eqz if - local.get $5 - local.set $6 + local.get $3 + local.set $4 local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $4 return end - local.get $5 + local.get $3 i32.const 1 i32.sub - local.set $5 + local.set $3 br $repeat|0 unreachable end unreachable end i32.const -1 - local.set $5 + local.set $3 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $3 ) - (func $~lib/util/string/parse (; 40 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/util/string/parse (; 39 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) (local $2 i32) (local $3 f64) (local $4 i32) @@ -4518,7 +4525,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/string/parseInt (; 41 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/string/parseInt (; 40 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) (local $2 f64) local.get $0 call $~lib/rt/pure/__retain @@ -4531,7 +4538,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/parseFloat (; 42 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/string/parseFloat (; 41 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -4742,12 +4749,13 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String#concat (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -4755,59 +4763,71 @@ i32.const 0 i32.eq if - local.get $1 - i32.const 552 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 552 + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $2 + end local.set $1 end local.get $0 call $~lib/string/String#get:length i32.const 1 i32.shl - local.set $2 + local.set $4 local.get $1 call $~lib/string/String#get:length i32.const 1 i32.shl - local.set $3 - local.get $2 - local.get $3 - i32.add - local.set $4 + local.set $5 local.get $4 + local.get $5 + i32.add + local.set $6 + local.get $6 i32.const 0 i32.eq if i32.const 120 call $~lib/rt/pure/__retain - local.set $5 + local.set $2 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $2 return end - local.get $4 + local.get $6 i32.const 1 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $6 - local.get $6 + local.set $7 + local.get $7 local.get $0 - local.get $2 + local.get $4 call $~lib/memory/memory.copy - local.get $6 - local.get $2 + local.get $7 + local.get $4 i32.add local.get $1 - local.get $3 + local.get $5 call $~lib/memory/memory.copy - local.get $6 - local.set $5 + local.get $7 + local.set $2 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $2 ) - (func $~lib/string/String.__concat (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4830,7 +4850,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__ne (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4849,7 +4869,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__gt (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gt (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4939,7 +4959,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__lt (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lt (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5029,7 +5049,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__gte (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gte (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -5048,7 +5068,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__lte (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lte (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -5067,7 +5087,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String#repeat (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#repeat (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5147,7 +5167,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#slice (; 51 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#slice (; 50 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5238,7 +5258,7 @@ local.get $8 call $~lib/rt/pure/__retain ) - (func $~lib/rt/__allocArray (; 52 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/__allocArray (; 51 ;) (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) @@ -5276,7 +5296,7 @@ end local.get $4 ) - (func $~lib/rt/tlsf/reallocateBlock (; 53 ;) (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) @@ -5409,7 +5429,7 @@ call $~lib/rt/tlsf/insertBlock local.get $8 ) - (func $~lib/rt/tlsf/__realloc (; 54 ;) (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 @@ -5449,7 +5469,7 @@ i32.const 16 i32.add ) - (func $~lib/memory/memory.fill (; 55 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 54 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5712,7 +5732,7 @@ end end ) - (func $~lib/array/ensureSize (; 56 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureSize (; 55 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5775,10 +5795,11 @@ i32.store offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#push (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#push (; 56 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 call $~lib/rt/pure/__retain drop @@ -5801,21 +5822,29 @@ i32.add local.set $4 local.get $4 - local.get $4 i32.load + local.set $5 local.get $1 - call $~lib/rt/pure/__retainRelease - i32.store + local.get $5 + i32.ne + if + local.get $4 + local.get $1 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + call $~lib/rt/pure/__release + end local.get $0 local.get $3 i32.store offset=12 local.get $3 - local.set $4 + local.set $5 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $5 ) - (func $~lib/string/String#split (; 58 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#split (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6136,23 +6165,11 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/rt/pure/__skippedRelease (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 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/pure/decrement - end - local.get $1 - ) - (func $~lib/array/Array<~lib/string/String>#get:length (; 60 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 61 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -6162,7 +6179,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#__get (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -6193,7 +6210,7 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get ) - (func $~lib/util/number/decimalCount32 (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 61 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -6262,7 +6279,7 @@ unreachable unreachable ) - (func $~lib/util/number/utoa32_lut (; 64 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 62 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6403,7 +6420,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 65 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6460,7 +6477,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/utoa32 (; 66 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 64 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6497,7 +6514,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/decimalCount64 (; 67 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 65 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -6566,7 +6583,7 @@ unreachable unreachable ) - (func $~lib/util/number/utoa64_lut (; 68 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 66 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -6692,7 +6709,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 69 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 67 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6761,7 +6778,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa64 (; 70 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 68 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6852,19 +6869,19 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/builtins/isFinite (; 71 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isFinite (; 69 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.sub f64.const 0 f64.eq ) - (func $~lib/builtins/isNaN (; 72 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 70 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $~lib/array/Array#__unchecked_get (; 73 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 71 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -6873,7 +6890,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 74 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 72 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -6882,7 +6899,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 75 ;) (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 (; 73 ;) (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) @@ -7438,7 +7455,7 @@ end local.get $15 ) - (func $~lib/util/number/prettify (; 76 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 74 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7768,7 +7785,7 @@ unreachable unreachable ) - (func $~lib/util/number/dtoa_core (; 77 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 75 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 f64) (local $4 i32) @@ -8206,7 +8223,7 @@ local.get $2 i32.add ) - (func $~lib/string/String#substring (; 78 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 76 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8325,7 +8342,7 @@ local.get $10 call $~lib/rt/pure/__retain ) - (func $~lib/rt/tlsf/__free (; 79 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/tlsf/__free (; 77 ;) (type $FUNCSIG$vi) (param $0 i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -8362,7 +8379,7 @@ i32.sub call $~lib/rt/tlsf/freeBlock ) - (func $~lib/util/number/dtoa (; 80 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 78 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8421,7 +8438,7 @@ call $~lib/rt/tlsf/__free local.get $3 ) - (func $start:std/string (; 81 ;) (type $FUNCSIG$v) + (func $start:std/string (; 79 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10097,9 +10114,21 @@ call $~lib/builtins/abort unreachable end - global.get $std/string/str - i32.const 1944 - call $~lib/rt/pure/__retainRelease + block (result i32) + i32.const 1944 + local.tee $31 + global.get $std/string/str + local.tee $32 + i32.ne + if + local.get $31 + call $~lib/rt/pure/__retain + drop + local.get $32 + call $~lib/rt/pure/__release + end + local.get $31 + end global.set $std/string/str global.get $std/string/str i32.const 0 @@ -10216,12 +10245,16 @@ block i32.const 0 local.set $38 - local.get $38 - i32.const 120 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 120 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.set $39 + local.get $38 + call $~lib/rt/pure/__release + local.get $39 + end local.set $38 local.get $38 call $~lib/array/Array<~lib/string/String>#get:length @@ -10252,12 +10285,16 @@ call $~lib/builtins/abort unreachable end - local.get $38 - i32.const 120 - i32.const 120 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 120 + i32.const 120 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.set $40 + local.get $38 + call $~lib/rt/pure/__release + local.get $40 + end local.set $38 local.get $38 call $~lib/array/Array<~lib/string/String>#get:length @@ -10272,12 +10309,16 @@ call $~lib/builtins/abort unreachable end - local.get $38 - i32.const 120 - i32.const 920 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 120 + i32.const 920 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.set $39 + local.get $38 + call $~lib/rt/pure/__release + local.get $39 + end local.set $38 local.get $38 call $~lib/array/Array<~lib/string/String>#get:length @@ -10308,12 +10349,16 @@ call $~lib/builtins/abort unreachable end - local.get $38 - i32.const 2320 - i32.const 2352 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 2320 + i32.const 2352 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.set $40 + local.get $38 + call $~lib/rt/pure/__release + local.get $40 + end local.set $38 local.get $38 call $~lib/array/Array<~lib/string/String>#get:length @@ -10323,13 +10368,13 @@ local.get $38 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $39 + local.tee $40 i32.const 2320 call $~lib/string/String.__eq - local.set $40 - local.get $39 - call $~lib/rt/pure/__release + local.set $39 local.get $40 + call $~lib/rt/pure/__release + local.get $39 else i32.const 0 end @@ -10344,12 +10389,16 @@ call $~lib/builtins/abort unreachable end - local.get $38 - i32.const 2320 - i32.const 920 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - call $~lib/rt/pure/__skippedRelease + block (result i32) + i32.const 2320 + i32.const 920 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.set $39 + local.get $38 + call $~lib/rt/pure/__release + local.get $39 + end local.set $38 local.get $38 call $~lib/array/Array<~lib/string/String>#get:length @@ -11955,11 +12004,11 @@ local.get $128 call $~lib/rt/pure/__release ) - (func $std/string/getString (; 82 ;) (type $FUNCSIG$i) (result i32) + (func $std/string/getString (; 80 ;) (type $FUNCSIG$i) (result i32) global.get $std/string/str call $~lib/rt/pure/__retain ) - (func $std/string/main (; 83 ;) (type $FUNCSIG$v) + (func $std/string/main (; 81 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -11968,10 +12017,10 @@ global.set $~lib/started end ) - (func $start (; 84 ;) (type $FUNCSIG$v) + (func $start (; 82 ;) (type $FUNCSIG$v) call $start:std/string ) - (func $~lib/rt/pure/markGray (; 85 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 83 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -11998,7 +12047,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 86 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 84 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -12015,7 +12064,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 87 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 85 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -12052,7 +12101,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 88 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 86 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -12081,7 +12130,7 @@ local.get $0 call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/pure/__visit (; 89 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 87 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -12235,7 +12284,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 90 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 88 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12271,19 +12320,19 @@ end end ) - (func $~lib/array/Array#__visit_impl (; 91 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 89 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 92 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 90 ;) (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 (; 91 ;) (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 (; 92 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/__visit_members (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 93 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block @@ -12433,6 +12482,6 @@ end unreachable ) - (func $null (; 96 ;) (type $FUNCSIG$v) + (func $null (; 94 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index eb972431..2ec361f7 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -370,22 +370,27 @@ local.get $1 ) (func $~lib/map/Map<~lib/string/String,usize>#clear (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 local.get $0 i32.load drop local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor + local.get $1 i32.store local.get $0 i32.const 3 i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 local.get $0 i32.load offset=8 drop local.get $0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -994,10 +999,13 @@ if local.get $2 i32.load offset=4 - drop - local.get $2 i32.const 24 - i32.store offset=4 + i32.ne + if + local.get $2 + i32.const 24 + i32.store offset=4 + end else local.get $0 i32.load offset=16 diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index 854e3128..8cb87c5d 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -467,19 +467,21 @@ local.get $2 call $~lib/rt/stub/__retain ) - (func $~lib/rt/stub/__skippedRelease (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - ) - (func $~lib/map/Map<~lib/string/String,usize>#clear (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map<~lib/string/String,usize>#clear (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/stub/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/stub/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -487,13 +489,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/stub/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/stub/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -505,7 +511,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map<~lib/string/String,usize>#constructor (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map<~lib/string/String,usize>#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -539,16 +545,21 @@ call $~lib/map/Map<~lib/string/String,usize>#clear local.get $0 ) - (func $~lib/map/Map#clear (; 10 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#clear (; 9 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) + (local $2 i32) local.get $0 local.tee $1 - local.get $1 - i32.load - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/stub/__skippedRelease + block (result i32) + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/stub/__release + local.get $2 + end i32.store local.get $0 i32.const 4 @@ -556,13 +567,17 @@ i32.sub i32.store offset=4 local.get $0 - local.tee $1 - local.get $1 - i32.load offset=8 - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/rt/stub/__skippedRelease + local.tee $2 + block (result i32) + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/stub/__release + local.get $1 + end i32.store offset=8 local.get $0 i32.const 4 @@ -574,7 +589,7 @@ i32.const 0 i32.store offset=20 ) - (func $~lib/map/Map#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/map/Map#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) block (result i32) local.get $0 i32.eqz @@ -608,7 +623,7 @@ call $~lib/map/Map#clear local.get $0 ) - (func $~lib/string/String#get:length (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -616,7 +631,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/hash/hashStr (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hashStr (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -670,7 +685,7 @@ call $~lib/rt/stub/__release local.get $3 ) - (func $~lib/util/string/compareImpl (; 14 ;) (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 (; 13 ;) (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) @@ -734,7 +749,7 @@ call $~lib/rt/stub/__release local.get $8 ) - (func $~lib/string/String.__eq (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -807,7 +822,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $~lib/map/Map<~lib/string/String,usize>#find (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map<~lib/string/String,usize>#find (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -866,7 +881,7 @@ call $~lib/rt/stub/__release local.get $4 ) - (func $~lib/map/Map<~lib/string/String,usize>#has (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map<~lib/string/String,usize>#has (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $1 @@ -894,7 +909,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $~lib/map/Map<~lib/string/String,usize>#get (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map<~lib/string/String,usize>#get (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -929,10 +944,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $~lib/rt/stub/__retainRelease (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - ) - (func $~lib/map/Map<~lib/string/String,usize>#rehash (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map<~lib/string/String,usize>#rehash (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1054,20 +1066,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/stub/__retain + drop + local.get $9 + call $~lib/rt/stub/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/stub/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/stub/__retain + drop + local.get $10 + call $~lib/rt/stub/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -1081,7 +1117,7 @@ local.get $5 call $~lib/rt/stub/__release ) - (func $~lib/map/Map<~lib/string/String,usize>#set (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map<~lib/string/String,usize>#set (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1199,7 +1235,7 @@ local.get $1 call $~lib/rt/stub/__release ) - (func $~lib/util/hash/hash32 (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/hash/hash32 (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const -2128831035 local.set $1 @@ -1241,7 +1277,7 @@ local.set $1 local.get $1 ) - (func $~lib/map/Map#find (; 23 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/map/Map#find (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load @@ -1288,7 +1324,7 @@ end i32.const 0 ) - (func $~lib/map/Map#rehash (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/map/Map#rehash (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1405,20 +1441,44 @@ end local.get $0 local.tee $9 - local.get $9 - i32.load - local.get $3 - call $~lib/rt/stub/__retainRelease + block (result i32) + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if + local.get $10 + call $~lib/rt/stub/__retain + drop + local.get $9 + call $~lib/rt/stub/__release + end + local.get $10 + end i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.tee $9 - local.get $9 - i32.load offset=8 - local.get $5 - call $~lib/rt/stub/__retainRelease + local.tee $10 + block (result i32) + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if + local.get $11 + call $~lib/rt/stub/__retain + drop + local.get $10 + call $~lib/rt/stub/__release + end + local.get $11 + end i32.store offset=8 local.get $0 local.get $4 @@ -1432,7 +1492,7 @@ local.get $5 call $~lib/rt/stub/__release ) - (func $~lib/map/Map#set (; 25 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/map/Map#set (; 23 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1455,12 +1515,20 @@ local.set $5 local.get $5 if - local.get $5 local.get $5 i32.load offset=4 + local.set $3 local.get $2 - call $~lib/rt/stub/__retainRelease - i32.store offset=4 + local.get $3 + i32.ne + if + local.get $5 + local.get $2 + call $~lib/rt/stub/__retain + i32.store offset=4 + local.get $3 + call $~lib/rt/stub/__release + end else local.get $0 i32.load offset=16 @@ -1548,7 +1616,7 @@ local.get $2 call $~lib/rt/stub/__release ) - (func $~lib/symbol/_Symbol.for (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/symbol/_Symbol.for (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -1557,15 +1625,23 @@ global.get $~lib/symbol/stringToId i32.eqz if - global.get $~lib/symbol/stringToId - i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#constructor - call $~lib/rt/stub/__skippedRelease + block (result i32) + i32.const 0 + call $~lib/map/Map<~lib/string/String,usize>#constructor + local.set $1 + global.get $~lib/symbol/stringToId + call $~lib/rt/stub/__release + local.get $1 + end global.set $~lib/symbol/stringToId - global.get $~lib/symbol/idToString - i32.const 0 - call $~lib/map/Map#constructor - call $~lib/rt/stub/__skippedRelease + block (result i32) + i32.const 0 + call $~lib/map/Map#constructor + local.set $1 + global.get $~lib/symbol/idToString + call $~lib/rt/stub/__release + local.get $1 + end global.set $~lib/symbol/idToString else global.get $~lib/symbol/stringToId @@ -1610,7 +1686,7 @@ call $~lib/rt/stub/__release local.get $1 ) - (func $~lib/map/Map#has (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#has (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -1625,7 +1701,7 @@ i32.const 0 i32.ne ) - (func $~lib/map/Map#get (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/map/Map#get (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1655,7 +1731,7 @@ end call $~lib/rt/stub/__retain ) - (func $~lib/symbol/_Symbol.keyFor (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/symbol/_Symbol.keyFor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) global.get $~lib/symbol/idToString i32.const 0 i32.ne @@ -1675,7 +1751,7 @@ call $~lib/rt/stub/__retain end ) - (func $~lib/util/memory/memcpy (; 30 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 28 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2866,7 +2942,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 29 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3093,12 +3169,13 @@ end end ) - (func $~lib/string/String#concat (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $1 call $~lib/rt/stub/__retain drop @@ -3106,59 +3183,71 @@ i32.const 0 i32.eq if - local.get $1 - i32.const 656 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 656 + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $2 + end local.set $1 end local.get $0 call $~lib/string/String#get:length i32.const 1 i32.shl - local.set $2 + local.set $4 local.get $1 call $~lib/string/String#get:length i32.const 1 i32.shl - local.set $3 - local.get $2 - local.get $3 - i32.add - local.set $4 + local.set $5 local.get $4 + local.get $5 + i32.add + local.set $6 + local.get $6 i32.const 0 i32.eq if i32.const 200 call $~lib/rt/stub/__retain - local.set $5 + local.set $2 local.get $1 call $~lib/rt/stub/__release - local.get $5 + local.get $2 return end - local.get $4 + local.get $6 i32.const 1 call $~lib/rt/stub/__alloc call $~lib/rt/stub/__retain - local.set $6 - local.get $6 + local.set $7 + local.get $7 local.get $0 - local.get $2 + local.get $4 call $~lib/memory/memory.copy - local.get $6 - local.get $2 + local.get $7 + local.get $4 i32.add local.get $1 - local.get $3 + local.get $5 call $~lib/memory/memory.copy - local.get $6 - local.set $5 + local.get $7 + local.set $2 local.get $1 call $~lib/rt/stub/__release - local.get $5 + local.get $2 ) - (func $~lib/string/String.__concat (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/stub/__retain @@ -3181,7 +3270,7 @@ call $~lib/rt/stub/__release local.get $2 ) - (func $~lib/symbol/_Symbol#toString (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/symbol/_Symbol#toString (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3254,9 +3343,21 @@ br $case11|0 end block - local.get $2 - i32.const 216 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 216 + local.tee $3 + local.get $2 + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $3 + end local.set $2 br $break|0 unreachable @@ -3264,9 +3365,21 @@ unreachable end block - local.get $2 - i32.const 256 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 256 + local.tee $4 + local.get $2 + local.tee $3 + i32.ne + if + local.get $4 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $4 + end local.set $2 br $break|0 unreachable @@ -3274,9 +3387,21 @@ unreachable end block - local.get $2 - i32.const 312 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 312 + local.tee $3 + local.get $2 + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $3 + end local.set $2 br $break|0 unreachable @@ -3284,9 +3409,21 @@ unreachable end block - local.get $2 - i32.const 344 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 344 + local.tee $4 + local.get $2 + local.tee $3 + i32.ne + if + local.get $4 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $4 + end local.set $2 br $break|0 unreachable @@ -3294,9 +3431,21 @@ unreachable end block - local.get $2 - i32.const 376 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 376 + local.tee $3 + local.get $2 + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $3 + end local.set $2 br $break|0 unreachable @@ -3304,9 +3453,21 @@ unreachable end block - local.get $2 - i32.const 408 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 408 + local.tee $4 + local.get $2 + local.tee $3 + i32.ne + if + local.get $4 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $4 + end local.set $2 br $break|0 unreachable @@ -3314,9 +3475,21 @@ unreachable end block - local.get $2 - i32.const 440 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 440 + local.tee $3 + local.get $2 + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $3 + end local.set $2 br $break|0 unreachable @@ -3324,9 +3497,21 @@ unreachable end block - local.get $2 - i32.const 472 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 472 + local.tee $4 + local.get $2 + local.tee $3 + i32.ne + if + local.get $4 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $4 + end local.set $2 br $break|0 unreachable @@ -3334,9 +3519,21 @@ unreachable end block - local.get $2 - i32.const 504 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 504 + local.tee $3 + local.get $2 + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $3 + end local.set $2 br $break|0 unreachable @@ -3344,9 +3541,21 @@ unreachable end block - local.get $2 - i32.const 544 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 544 + local.tee $4 + local.get $2 + local.tee $3 + i32.ne + if + local.get $4 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $4 + end local.set $2 br $break|0 unreachable @@ -3354,9 +3563,21 @@ unreachable end block - local.get $2 - i32.const 584 - call $~lib/rt/stub/__retainRelease + block (result i32) + i32.const 584 + local.tee $3 + local.get $2 + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release + end + local.get $3 + end local.set $2 br $break|0 unreachable @@ -3375,11 +3596,15 @@ i32.const 0 end if - local.get $2 - global.get $~lib/symbol/idToString - local.get $1 - call $~lib/map/Map#get - call $~lib/rt/stub/__skippedRelease + block (result i32) + global.get $~lib/symbol/idToString + local.get $1 + call $~lib/map/Map#get + local.set $4 + local.get $2 + call $~lib/rt/stub/__release + local.get $4 + end local.set $2 end br $break|0 @@ -3390,21 +3615,21 @@ i32.const 624 local.get $2 call $~lib/string/String.__concat - local.tee $3 + local.tee $4 i32.const 680 call $~lib/string/String.__concat - local.tee $4 + local.tee $3 call $~lib/rt/stub/__retain local.set $5 - local.get $3 - call $~lib/rt/stub/__release local.get $4 call $~lib/rt/stub/__release + local.get $3 + call $~lib/rt/stub/__release local.get $2 call $~lib/rt/stub/__release local.get $5 ) - (func $start:std/symbol (; 35 ;) (type $FUNCSIG$v) + (func $start:std/symbol (; 33 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3599,9 +3824,9 @@ local.get $5 call $~lib/rt/stub/__release ) - (func $start (; 36 ;) (type $FUNCSIG$v) + (func $start (; 34 ;) (type $FUNCSIG$v) call $start:std/symbol ) - (func $null (; 37 ;) (type $FUNCSIG$v) + (func $null (; 35 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index b57af602..a90c5521 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -1500,33 +1500,19 @@ end end ) - (func $~lib/rt/pure/__retainRelease (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/pure/__release (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 - local.get $1 - i32.ne + i32.const 1820 + i32.gt_u if - local.get $1 - i32.const 1820 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end local.get $0 - i32.const 1820 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement end - local.get $1 ) (func $~lib/arraybuffer/ArrayBufferView#constructor (; 24 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) local.get $1 i32.const 1073741808 local.get $2 @@ -1566,10 +1552,19 @@ i32.const 0 i32.store offset=8 local.get $0 - local.get $0 i32.load + local.tee $3 + local.get $1 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $0 local.get $1 - call $~lib/rt/pure/__retainRelease i32.store local.get $0 local.get $1 @@ -1703,18 +1698,7 @@ i32.const 3 call $~lib/arraybuffer/ArrayBufferView#constructor ) - (func $~lib/rt/pure/__release (; 40 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - i32.const 1820 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - ) - (func $std/typedarray/testInstantiate (; 41 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/typedarray/testInstantiate (; 40 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2161,7 +2145,7 @@ local.get $11 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#__set (; 42 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int32Array#__set (; 41 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -2185,7 +2169,7 @@ local.get $2 i32.store ) - (func $~lib/typedarray/Int32Array#__get (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#__get (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -2208,9 +2192,11 @@ i32.add i32.load ) - (func $~lib/typedarray/Int32Array#subarray (; 44 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#subarray (; 43 ;) (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 $0 call $~lib/rt/pure/__retain local.tee $4 @@ -2259,17 +2245,35 @@ i32.lt_s select end - local.set $2 + local.tee $1 + local.get $0 + local.get $1 + local.get $0 + i32.gt_s + select + local.set $3 i32.const 12 i32.const 8 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.get $1 - i32.load + local.set $5 local.get $4 i32.load - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $1 + i32.load + local.tee $6 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $2 i32.store local.get $1 local.get $4 @@ -2280,12 +2284,7 @@ i32.add i32.store offset=4 local.get $1 - local.get $2 - local.get $0 - local.get $2 - local.get $0 - i32.gt_s - select + local.get $3 local.get $0 i32.sub i32.const 2 @@ -2300,19 +2299,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/rt/pure/__skippedRelease (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 1820 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - local.get $1 - ) - (func $~lib/typedarray/Float64Array#__set (; 46 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64) + (func $~lib/typedarray/Float64Array#__set (; 44 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64) local.get $1 local.get $0 i32.load offset=8 @@ -2336,9 +2323,11 @@ local.get $2 f64.store ) - (func $~lib/typedarray/Float64Array#subarray (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#subarray (; 45 ;) (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 $0 call $~lib/rt/pure/__retain local.tee $4 @@ -2387,17 +2376,35 @@ i32.lt_s select end - local.set $2 + local.tee $1 + local.get $0 + local.get $1 + local.get $0 + i32.gt_s + select + local.set $3 i32.const 12 i32.const 13 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.get $1 - i32.load + local.set $5 local.get $4 i32.load - call $~lib/rt/pure/__retainRelease + local.tee $2 + local.get $1 + i32.load + local.tee $6 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $2 i32.store local.get $1 local.get $4 @@ -2408,12 +2415,7 @@ i32.add i32.store offset=4 local.get $1 - local.get $2 - local.get $0 - local.get $2 - local.get $0 - i32.gt_s - select + local.get $3 local.get $0 i32.sub i32.const 3 @@ -2428,7 +2430,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/util/sort/insertionSort (; 48 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 46 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -2510,7 +2512,7 @@ unreachable end ) - (func $~lib/memory/memory.fill (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 47 ;) (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 @@ -2735,7 +2737,7 @@ end end ) - (func $~lib/rt/tlsf/__free (; 50 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/tlsf/__free (; 48 ;) (type $FUNCSIG$vi) (param $0 i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -2768,7 +2770,7 @@ i32.sub call $~lib/rt/tlsf/freeBlock ) - (func $~lib/util/sort/weakHeapSort (; 51 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -3029,7 +3031,7 @@ local.get $5 f64.store ) - (func $~lib/typedarray/Float64Array#sort (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#sort (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -3102,7 +3104,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 53 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 51 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -3131,7 +3133,7 @@ i64.lt_s i32.sub ) - (func $~lib/typedarray/Float64Array#__get (; 54 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/typedarray/Float64Array#__get (; 52 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=8 @@ -3154,7 +3156,7 @@ i32.add f64.load ) - (func $~lib/typedarray/Uint8ClampedArray#__set (; 55 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#__set (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -3186,7 +3188,7 @@ i32.and i32.store8 ) - (func $~lib/typedarray/Uint8ClampedArray#__get (; 56 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#__get (; 54 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -3205,7 +3207,7 @@ i32.add i32.load8_u ) - (func $~lib/typedarray/Int8Array#__set (; 57 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int8Array#__set (; 55 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -3225,7 +3227,7 @@ local.get $2 i32.store8 ) - (func $~lib/typedarray/Int8Array#fill (; 58 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Int8Array#fill (; 56 ;) (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) @@ -3299,7 +3301,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/rt/__allocArray (; 59 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/__allocArray (; 57 ;) (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 @@ -3332,7 +3334,7 @@ end local.get $2 ) - (func $~lib/typedarray/Int8Array#__get (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#__get (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -3351,7 +3353,7 @@ i32.add i32.load8_s ) - (func $~lib/array/Array#__get (; 61 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -3370,7 +3372,7 @@ i32.add i32.load8_s ) - (func $std/typedarray/isInt8ArrayEqual (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/isInt8ArrayEqual (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3422,9 +3424,11 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/typedarray/Int8Array#subarray (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#subarray (; 61 ;) (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 $0 call $~lib/rt/pure/__retain local.tee $4 @@ -3473,17 +3477,35 @@ i32.lt_s select end - local.set $2 + local.tee $1 + local.get $0 + local.get $1 + local.get $0 + i32.gt_s + select + local.set $3 i32.const 12 i32.const 3 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 + local.set $5 local.get $1 i32.load + local.tee $6 local.get $4 i32.load - call $~lib/rt/pure/__retainRelease + local.tee $2 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $2 i32.store local.get $1 local.get $4 @@ -3492,12 +3514,7 @@ i32.add i32.store offset=4 local.get $1 - local.get $2 - local.get $0 - local.get $2 - local.get $0 - i32.gt_s - select + local.get $3 local.get $0 i32.sub i32.store offset=8 @@ -3510,7 +3527,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Int32Array#fill (; 64 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Int32Array#fill (; 62 ;) (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) @@ -3595,7 +3612,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/array/Array#__get (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 63 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -3618,7 +3635,7 @@ i32.add i32.load ) - (func $std/typedarray/isInt32ArrayEqual (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/isInt32ArrayEqual (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3670,7 +3687,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 67 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 65 ;) (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 @@ -3680,7 +3697,7 @@ local.get $1 i32.add ) - (func $~lib/typedarray/Int8Array#reduce (; 68 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduce (; 66 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3722,7 +3739,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> (; 69 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> (; 67 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -3760,7 +3777,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#__set (; 70 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8Array#__set (; 68 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -3780,7 +3797,7 @@ local.get $2 i32.store8 ) - (func $~lib/typedarray/Uint8Array#reduce (; 71 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduce (; 69 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3823,7 +3840,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> (; 72 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> (; 70 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -3862,7 +3879,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> (; 73 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> (; 71 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -3901,7 +3918,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#__set (; 74 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int16Array#__set (; 72 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -3925,7 +3942,7 @@ local.get $2 i32.store16 ) - (func $~lib/typedarray/Int16Array#reduce (; 75 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reduce (; 73 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3969,7 +3986,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> (; 76 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> (; 74 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4007,7 +4024,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#__set (; 77 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint16Array#__set (; 75 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -4031,7 +4048,7 @@ local.get $2 i32.store16 ) - (func $~lib/typedarray/Uint16Array#reduce (; 78 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reduce (; 76 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4075,7 +4092,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> (; 79 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> (; 77 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4113,7 +4130,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#reduce (; 80 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduce (; 78 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4158,7 +4175,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> (; 81 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> (; 79 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4195,7 +4212,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array#__set (; 82 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint32Array#__set (; 80 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -4219,7 +4236,7 @@ local.get $2 i32.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> (; 83 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> (; 81 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4256,7 +4273,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#__set (; 84 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/typedarray/Int64Array#__set (; 82 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 local.get $0 i32.load offset=8 @@ -4280,7 +4297,7 @@ local.get $2 i64.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 85 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 83 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $3 call $~lib/rt/pure/__retain drop @@ -4290,7 +4307,7 @@ local.get $1 i64.add ) - (func $~lib/typedarray/Int64Array#reduce (; 86 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Int64Array#reduce (; 84 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -4335,7 +4352,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> (; 87 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> (; 85 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4372,7 +4389,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#__set (; 88 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/typedarray/Uint64Array#__set (; 86 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 local.get $0 i32.load offset=8 @@ -4396,7 +4413,7 @@ local.get $2 i64.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> (; 89 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> (; 87 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4433,7 +4450,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#__set (; 90 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) + (func $~lib/typedarray/Float32Array#__set (; 88 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) local.get $1 local.get $0 i32.load offset=8 @@ -4457,7 +4474,7 @@ local.get $2 f32.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 91 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 89 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) local.get $3 call $~lib/rt/pure/__retain drop @@ -4467,7 +4484,7 @@ local.get $1 f32.add ) - (func $~lib/typedarray/Float32Array#reduce (; 92 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) + (func $~lib/typedarray/Float32Array#reduce (; 90 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -4511,7 +4528,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> (; 93 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> (; 91 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4547,7 +4564,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 94 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 92 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) local.get $3 call $~lib/rt/pure/__retain drop @@ -4557,7 +4574,7 @@ local.get $1 f64.add ) - (func $~lib/typedarray/Float64Array#reduce (; 95 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/typedarray/Float64Array#reduce (; 93 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -4601,7 +4618,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> (; 96 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> (; 94 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4637,7 +4654,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#reduceRight (; 97 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduceRight (; 95 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4678,7 +4695,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> (; 98 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> (; 96 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4716,7 +4733,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#reduceRight (; 99 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduceRight (; 97 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4758,7 +4775,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> (; 100 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> (; 98 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4797,7 +4814,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> (; 101 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> (; 99 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4836,7 +4853,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#reduceRight (; 102 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reduceRight (; 100 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4879,7 +4896,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> (; 103 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> (; 101 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4917,7 +4934,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#reduceRight (; 104 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reduceRight (; 102 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4960,7 +4977,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> (; 105 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> (; 103 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -4998,7 +5015,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#reduceRight (; 106 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduceRight (; 104 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5042,7 +5059,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> (; 107 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> (; 105 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -5079,7 +5096,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> (; 108 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> (; 106 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -5116,7 +5133,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#reduceRight (; 109 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Int64Array#reduceRight (; 107 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -5160,7 +5177,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> (; 110 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> (; 108 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -5197,7 +5214,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> (; 111 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> (; 109 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -5234,7 +5251,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#reduceRight (; 112 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) + (func $~lib/typedarray/Float32Array#reduceRight (; 110 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -5277,7 +5294,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> (; 113 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> (; 111 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -5313,7 +5330,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#reduceRight (; 114 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/typedarray/Float64Array#reduceRight (; 112 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -5356,7 +5373,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> (; 115 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> (; 113 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -5392,7 +5409,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 116 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 114 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -5402,7 +5419,7 @@ local.get $0 i32.mul ) - (func $~lib/typedarray/Int8Array#map (; 117 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#map (; 115 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5462,7 +5479,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (; 118 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (; 116 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5530,7 +5547,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#map (; 119 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#map (; 117 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5590,7 +5607,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Uint8Array#__get (; 120 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__get (; 118 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -5609,7 +5626,7 @@ i32.add i32.load8_u ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> (; 121 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> (; 119 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5677,7 +5694,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray#map (; 122 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#map (; 120 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5737,7 +5754,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (; 123 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (; 121 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5805,7 +5822,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#map (; 124 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#map (; 122 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5872,7 +5889,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Int16Array#__get (; 125 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#__get (; 123 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -5895,7 +5912,7 @@ i32.add i32.load16_s ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> (; 126 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> (; 124 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5963,7 +5980,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#map (; 127 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#map (; 125 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6030,7 +6047,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Uint16Array#__get (; 128 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#__get (; 126 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -6053,7 +6070,7 @@ i32.add i32.load16_u ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> (; 129 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> (; 127 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6121,7 +6138,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#map (; 130 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#map (; 128 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6188,7 +6205,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> (; 131 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> (; 129 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6256,7 +6273,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array#map (; 132 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#map (; 130 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6323,7 +6340,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Uint32Array#__get (; 133 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#__get (; 131 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -6346,7 +6363,7 @@ i32.add i32.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> (; 134 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> (; 132 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6414,7 +6431,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 135 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 133 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) local.get $2 call $~lib/rt/pure/__retain drop @@ -6424,7 +6441,7 @@ local.get $0 i64.mul ) - (func $~lib/typedarray/Int64Array#map (; 136 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#map (; 134 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6491,7 +6508,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Int64Array#__get (; 137 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Int64Array#__get (; 135 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 i32.load offset=8 @@ -6514,7 +6531,7 @@ i32.add i64.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> (; 138 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> (; 136 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6582,7 +6599,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#map (; 139 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#map (; 137 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6649,7 +6666,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Uint64Array#__get (; 140 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Uint64Array#__get (; 138 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 i32.load offset=8 @@ -6672,7 +6689,7 @@ i32.add i64.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> (; 141 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> (; 139 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6740,7 +6757,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 142 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 140 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) local.get $2 call $~lib/rt/pure/__retain drop @@ -6750,7 +6767,7 @@ local.get $0 f32.mul ) - (func $~lib/typedarray/Float32Array#map (; 143 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#map (; 141 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6817,7 +6834,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Float32Array#__get (; 144 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/typedarray/Float32Array#__get (; 142 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=8 @@ -6840,7 +6857,7 @@ i32.add f32.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> (; 145 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> (; 143 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6908,7 +6925,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 146 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 144 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) local.get $2 call $~lib/rt/pure/__retain drop @@ -6918,7 +6935,7 @@ local.get $0 f64.mul ) - (func $~lib/typedarray/Float64Array#map (; 147 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#map (; 145 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6985,7 +7002,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> (; 148 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> (; 146 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7053,7 +7070,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 149 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 147 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -7065,7 +7082,7 @@ i32.const 2 i32.eq ) - (func $~lib/typedarray/Int8Array#some (; 150 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#some (; 148 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7115,7 +7132,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 151 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 149 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -7126,7 +7143,7 @@ i32.and i32.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> (; 152 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> (; 150 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -7173,7 +7190,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#some (; 153 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#some (; 151 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7223,7 +7240,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> (; 154 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> (; 152 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -7270,7 +7287,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> (; 155 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> (; 153 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -7317,7 +7334,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 156 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 154 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -7329,7 +7346,7 @@ i32.const 2 i32.eq ) - (func $~lib/typedarray/Int16Array#some (; 157 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#some (; 155 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7382,7 +7399,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 158 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 156 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -7393,7 +7410,7 @@ i32.and i32.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> (; 159 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> (; 157 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -7440,7 +7457,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#some (; 160 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#some (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7493,7 +7510,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> (; 161 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> (; 159 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -7540,7 +7557,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 162 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 160 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -7550,7 +7567,7 @@ i32.const 2 i32.eq ) - (func $~lib/typedarray/Int32Array#some (; 163 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#some (; 161 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7603,7 +7620,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 164 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 162 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -7612,7 +7629,7 @@ local.get $0 i32.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> (; 165 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> (; 163 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -7659,7 +7676,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> (; 166 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> (; 164 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -7706,7 +7723,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 167 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 165 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -7716,7 +7733,7 @@ i64.const 2 i64.eq ) - (func $~lib/typedarray/Int64Array#some (; 168 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#some (; 166 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7769,7 +7786,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 169 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 167 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -7779,7 +7796,7 @@ i64.const 0 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> (; 170 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> (; 168 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -7826,7 +7843,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> (; 171 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> (; 169 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -7873,7 +7890,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 172 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 170 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -7883,7 +7900,7 @@ f32.const 2 f32.eq ) - (func $~lib/typedarray/Float32Array#some (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#some (; 171 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7936,7 +7953,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 174 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 172 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -7946,7 +7963,7 @@ f32.const 0 f32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> (; 175 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> (; 173 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -7993,7 +8010,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 176 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 174 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -8003,7 +8020,7 @@ f64.const 2 f64.eq ) - (func $~lib/typedarray/Float64Array#some (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#some (; 175 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8056,7 +8073,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 178 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 176 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -8066,7 +8083,7 @@ f64.const 0 f64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> (; 179 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> (; 177 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -8113,7 +8130,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#findIndex (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#findIndex (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8164,7 +8181,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 181 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 179 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -8176,7 +8193,7 @@ i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> (; 182 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> (; 180 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -8226,7 +8243,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#findIndex (; 183 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#findIndex (; 181 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8277,7 +8294,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> (; 184 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> (; 182 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -8327,7 +8344,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> (; 185 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> (; 183 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -8377,7 +8394,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#findIndex (; 186 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#findIndex (; 184 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8431,7 +8448,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 187 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 185 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -8443,7 +8460,7 @@ i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> (; 188 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> (; 186 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -8493,7 +8510,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#findIndex (; 189 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#findIndex (; 187 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8547,7 +8564,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> (; 190 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> (; 188 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -8597,7 +8614,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#findIndex (; 191 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#findIndex (; 189 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8651,7 +8668,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 192 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 190 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -8661,7 +8678,7 @@ i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> (; 193 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> (; 191 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -8711,7 +8728,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> (; 194 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> (; 192 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -8761,7 +8778,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#findIndex (; 195 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#findIndex (; 193 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8815,7 +8832,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 196 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 194 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -8825,7 +8842,7 @@ i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> (; 197 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> (; 195 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -8875,7 +8892,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> (; 198 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> (; 196 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -8925,7 +8942,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#findIndex (; 199 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#findIndex (; 197 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8979,7 +8996,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 200 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 198 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -8989,7 +9006,7 @@ f32.const 4 f32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> (; 201 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> (; 199 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -9039,7 +9056,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#findIndex (; 202 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#findIndex (; 200 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9093,7 +9110,7 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 203 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 201 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -9103,7 +9120,7 @@ f64.const 4 f64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> (; 204 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> (; 202 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -9153,7 +9170,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 205 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 203 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -9170,7 +9187,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Int8Array#every (; 206 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#every (; 204 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9220,7 +9237,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> (; 207 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> (; 205 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -9267,7 +9284,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 208 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 206 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -9278,7 +9295,7 @@ i32.and i32.eqz ) - (func $~lib/typedarray/Uint8Array#every (; 209 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#every (; 207 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9328,7 +9345,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> (; 210 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> (; 208 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -9375,7 +9392,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> (; 211 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> (; 209 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -9422,7 +9439,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 212 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 210 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -9439,7 +9456,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Int16Array#every (; 213 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#every (; 211 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9491,7 +9508,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> (; 214 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> (; 212 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -9538,7 +9555,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#every (; 215 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#every (; 213 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9590,7 +9607,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> (; 216 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> (; 214 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -9637,7 +9654,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 217 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 215 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -9650,7 +9667,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Int32Array#every (; 218 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#every (; 216 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9702,7 +9719,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> (; 219 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> (; 217 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -9749,7 +9766,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> (; 220 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> (; 218 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -9796,7 +9813,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 221 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 219 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -9810,7 +9827,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Int64Array#every (; 222 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#every (; 220 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9862,7 +9879,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> (; 223 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> (; 221 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -9909,7 +9926,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 224 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 222 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -9923,7 +9940,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> (; 225 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> (; 223 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -9970,7 +9987,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/math/NativeMathf.mod (; 226 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 224 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10119,7 +10136,7 @@ local.get $0 f32.mul ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 227 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 225 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -10132,7 +10149,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Float32Array#every (; 228 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#every (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10184,7 +10201,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 229 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 227 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -10231,7 +10248,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/math/NativeMath.mod (; 230 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 228 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -10387,7 +10404,7 @@ local.get $0 f64.mul ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 231 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 229 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -10400,7 +10417,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Float64Array#every (; 232 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#every (; 230 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10452,7 +10469,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 233 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 231 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 3 @@ -10499,7 +10516,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 234 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 232 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -10549,7 +10566,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#forEach (; 235 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Int8Array#forEach (; 233 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10587,7 +10604,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 236 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 234 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -10646,7 +10663,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#forEach (; 237 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#forEach (; 235 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10685,7 +10702,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 238 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 236 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -10739,7 +10756,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 239 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 237 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -10793,7 +10810,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 240 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 238 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -10843,7 +10860,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#forEach (; 241 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Int16Array#forEach (; 239 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10883,7 +10900,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 242 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 240 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -10942,7 +10959,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#forEach (; 243 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Uint16Array#forEach (; 241 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10982,7 +10999,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 244 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 242 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -11035,7 +11052,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 245 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 243 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -11081,7 +11098,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#forEach (; 246 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int32Array#forEach (; 244 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11123,7 +11140,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 247 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 245 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -11171,7 +11188,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 248 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 246 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -11219,7 +11236,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 249 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 247 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -11266,7 +11283,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#forEach (; 250 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int64Array#forEach (; 248 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11308,7 +11325,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 251 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 249 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -11359,7 +11376,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 252 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 250 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -11410,7 +11427,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 253 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 251 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -11457,7 +11474,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#forEach (; 254 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Float32Array#forEach (; 252 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11497,7 +11514,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 255 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 253 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -11547,7 +11564,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 256 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 254 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain drop @@ -11594,7 +11611,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#forEach (; 257 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Float64Array#forEach (; 255 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11634,7 +11651,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 258 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 256 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -11684,7 +11701,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#reverse (; 259 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reverse (; 257 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11741,7 +11758,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 260 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 258 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11909,7 +11926,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#reverse (; 261 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reverse (; 259 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11966,55 +11983,71 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Uint8Array#subarray (; 262 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#subarray (; 260 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 8 local.get $0 call $~lib/rt/pure/__retain - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.tee $0 + i32.const 8 + local.get $0 + i32.lt_s + select + local.tee $2 + i32.const 4 + local.get $0 + i32.const 4 + local.get $0 + i32.lt_s + select + local.tee $3 + local.get $2 + local.get $3 + i32.gt_s + select + local.set $4 i32.const 12 i32.const 4 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $0 + local.set $5 + local.get $1 + i32.load + local.tee $2 local.get $0 i32.load + local.tee $6 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 local.get $2 - i32.load - call $~lib/rt/pure/__retainRelease i32.store local.get $0 - i32.const 4 local.get $1 - i32.const 4 - local.get $1 - i32.lt_s - select - local.tee $3 - local.get $2 i32.load offset=4 + local.get $3 i32.add i32.store offset=4 local.get $0 - i32.const 8 - local.get $1 - i32.const 8 - local.get $1 - i32.lt_s - select - local.tee $1 - local.get $3 - local.get $1 - local.get $3 - i32.gt_s - select + local.get $4 local.get $3 i32.sub i32.store offset=8 - local.get $2 + local.get $1 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__retain @@ -12023,7 +12056,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 263 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 261 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12183,55 +12216,71 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (; 264 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#subarray (; 262 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 8 local.get $0 call $~lib/rt/pure/__retain - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.tee $0 + i32.const 8 + local.get $0 + i32.lt_s + select + local.tee $2 + i32.const 4 + local.get $0 + i32.const 4 + local.get $0 + i32.lt_s + select + local.tee $3 + local.get $2 + local.get $3 + i32.gt_s + select + local.set $4 i32.const 12 i32.const 5 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $0 + local.set $5 + local.get $1 + i32.load + local.tee $2 local.get $0 i32.load + local.tee $6 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 local.get $2 - i32.load - call $~lib/rt/pure/__retainRelease i32.store local.get $0 - i32.const 4 local.get $1 - i32.const 4 - local.get $1 - i32.lt_s - select - local.tee $3 - local.get $2 i32.load offset=4 + local.get $3 i32.add i32.store offset=4 local.get $0 - i32.const 8 - local.get $1 - i32.const 8 - local.get $1 - i32.lt_s - select - local.tee $1 - local.get $3 - local.get $1 - local.get $3 - i32.gt_s - select + local.get $4 local.get $3 i32.sub i32.store offset=8 - local.get $2 + local.get $1 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__retain @@ -12240,7 +12289,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 265 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 263 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12400,7 +12449,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#reverse (; 266 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reverse (; 264 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12462,10 +12511,13 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Int16Array#subarray (; 267 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (; 265 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) i32.const 4 local.get $0 call $~lib/rt/pure/__retain @@ -12483,17 +12535,35 @@ local.get $1 i32.lt_s select - local.set $3 + local.tee $1 + local.get $0 + local.get $1 + local.get $0 + i32.gt_s + select + local.set $4 i32.const 12 i32.const 6 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 + local.set $5 local.get $1 i32.load + local.tee $6 local.get $2 i32.load - call $~lib/rt/pure/__retainRelease + local.tee $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $3 i32.store local.get $1 local.get $2 @@ -12504,12 +12574,7 @@ i32.add i32.store offset=4 local.get $1 - local.get $3 - local.get $0 - local.get $3 - local.get $0 - i32.gt_s - select + local.get $4 local.get $0 i32.sub i32.const 1 @@ -12524,7 +12589,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 268 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 266 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12690,7 +12755,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#reverse (; 269 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reverse (; 267 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12752,10 +12817,13 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Uint16Array#subarray (; 270 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#subarray (; 268 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) i32.const 4 local.get $0 call $~lib/rt/pure/__retain @@ -12773,17 +12841,35 @@ local.get $1 i32.lt_s select - local.set $3 + local.tee $1 + local.get $0 + local.get $1 + local.get $0 + i32.gt_s + select + local.set $4 i32.const 12 i32.const 7 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 + local.set $5 local.get $1 i32.load + local.tee $6 local.get $2 i32.load - call $~lib/rt/pure/__retainRelease + local.tee $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $3 i32.store local.get $1 local.get $2 @@ -12794,12 +12880,7 @@ i32.add i32.store offset=4 local.get $1 - local.get $3 - local.get $0 - local.get $3 - local.get $0 - i32.gt_s - select + local.get $4 local.get $0 i32.sub i32.const 1 @@ -12814,7 +12895,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 271 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 269 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12974,7 +13055,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#reverse (; 272 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#reverse (; 270 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -13036,7 +13117,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 273 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 271 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13192,10 +13273,13 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array#subarray (; 274 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#subarray (; 272 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) i32.const 4 local.get $0 call $~lib/rt/pure/__retain @@ -13213,17 +13297,35 @@ local.get $1 i32.lt_s select - local.set $3 + local.tee $1 + local.get $0 + local.get $1 + local.get $0 + i32.gt_s + select + local.set $4 i32.const 12 i32.const 9 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 + local.set $5 local.get $1 i32.load + local.tee $6 local.get $2 i32.load - call $~lib/rt/pure/__retainRelease + local.tee $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $3 i32.store local.get $1 local.get $2 @@ -13234,12 +13336,7 @@ i32.add i32.store offset=4 local.get $1 - local.get $3 - local.get $0 - local.get $3 - local.get $0 - i32.gt_s - select + local.get $4 local.get $0 i32.sub i32.const 2 @@ -13254,7 +13351,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 275 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 273 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13408,7 +13505,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#reverse (; 276 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#reverse (; 274 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -13470,10 +13567,13 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Int64Array#subarray (; 277 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#subarray (; 275 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) i32.const 4 local.get $0 call $~lib/rt/pure/__retain @@ -13491,17 +13591,35 @@ local.get $1 i32.lt_s select - local.set $3 + local.tee $1 + local.get $0 + local.get $1 + local.get $0 + i32.gt_s + select + local.set $4 i32.const 12 i32.const 10 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 + local.set $5 local.get $1 i32.load + local.tee $6 local.get $2 i32.load - call $~lib/rt/pure/__retainRelease + local.tee $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $3 i32.store local.get $1 local.get $2 @@ -13512,12 +13630,7 @@ i32.add i32.store offset=4 local.get $1 - local.get $3 - local.get $0 - local.get $3 - local.get $0 - i32.gt_s - select + local.get $4 local.get $0 i32.sub i32.const 3 @@ -13532,7 +13645,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 278 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 276 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13689,10 +13802,13 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#subarray (; 279 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#subarray (; 277 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) i32.const 4 local.get $0 call $~lib/rt/pure/__retain @@ -13710,17 +13826,35 @@ local.get $1 i32.lt_s select - local.set $3 + local.tee $1 + local.get $0 + local.get $1 + local.get $0 + i32.gt_s + select + local.set $4 i32.const 12 i32.const 11 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 + local.set $5 local.get $1 i32.load + local.tee $6 local.get $2 i32.load - call $~lib/rt/pure/__retainRelease + local.tee $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $3 i32.store local.get $1 local.get $2 @@ -13731,12 +13865,7 @@ i32.add i32.store offset=4 local.get $1 - local.get $3 - local.get $0 - local.get $3 - local.get $0 - i32.gt_s - select + local.get $4 local.get $0 i32.sub i32.const 3 @@ -13751,7 +13880,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 280 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 278 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13908,7 +14037,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#reverse (; 281 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#reverse (; 279 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -13970,10 +14099,13 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $~lib/typedarray/Float32Array#subarray (; 282 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#subarray (; 280 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) i32.const 4 local.get $0 call $~lib/rt/pure/__retain @@ -13991,17 +14123,35 @@ local.get $1 i32.lt_s select - local.set $3 + local.tee $1 + local.get $0 + local.get $1 + local.get $0 + i32.gt_s + select + local.set $4 i32.const 12 i32.const 12 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 + local.set $5 local.get $1 i32.load + local.tee $6 local.get $2 i32.load - call $~lib/rt/pure/__retainRelease + local.tee $3 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $3 i32.store local.get $1 local.get $2 @@ -14012,12 +14162,7 @@ i32.add i32.store offset=4 local.get $1 - local.get $3 - local.get $0 - local.get $3 - local.get $0 - i32.gt_s - select + local.get $4 local.get $0 i32.sub i32.const 2 @@ -14032,7 +14177,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 283 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 281 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14189,7 +14334,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#reverse (; 284 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#reverse (; 282 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14251,7 +14396,7 @@ call $~lib/rt/pure/__release local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 285 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 283 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14410,7 +14555,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:std/typedarray (; 286 ;) (type $FUNCSIG$v) + (func $start:std/typedarray (; 284 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14512,12 +14657,13 @@ unreachable end local.get $0 - local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#subarray - call $~lib/rt/pure/__skippedRelease - local.tee $0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 call $~lib/typedarray/Int32Array#get:length i32.const 1 i32.ne @@ -14529,7 +14675,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 4 i32.ne @@ -14541,7 +14687,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 4 i32.ne @@ -14553,7 +14699,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 2 @@ -14566,7 +14712,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/rt/pure/__release i32.const 8 call $~lib/typedarray/Float64Array#constructor @@ -14603,12 +14749,13 @@ f64.const 8 call $~lib/typedarray/Float64Array#__set local.get $0 - local.get $0 i32.const 2 i32.const 6 call $~lib/typedarray/Float64Array#subarray - call $~lib/rt/pure/__skippedRelease - local.tee $0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 call $~lib/typedarray/Int64Array#get:length i32.const 4 i32.ne @@ -14620,7 +14767,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 16 i32.ne @@ -14632,7 +14779,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 32 i32.ne @@ -14646,6 +14793,8 @@ end i32.const 0 global.set $~lib/argc + i32.const 0 + local.set $0 block $1of1 block $0of1 block $outOfRange @@ -14655,19 +14804,19 @@ unreachable end i32.const 1 - local.set $1 + local.set $0 end - local.get $0 local.get $1 + local.get $0 call $~lib/typedarray/Float64Array#sort call $~lib/rt/pure/__release - local.get $0 + local.get $1 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.eq if (result i32) - local.get $0 + local.get $1 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -14676,7 +14825,7 @@ i32.const 0 end if (result i32) - local.get $0 + local.get $1 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 6 @@ -14685,7 +14834,7 @@ i32.const 0 end if (result i32) - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Float64Array#__get f64.const 7 @@ -14702,7 +14851,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/rt/pure/__release i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor @@ -15527,7 +15676,7 @@ global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__release ) - (func $std/typedarray/main (; 287 ;) (type $FUNCSIG$v) + (func $std/typedarray/main (; 285 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -15536,7 +15685,7 @@ global.set $~lib/started end ) - (func $~lib/rt/pure/markGray (; 288 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 286 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -15560,7 +15709,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 289 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 287 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -15573,7 +15722,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 290 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 288 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -15607,7 +15756,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 291 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 289 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -15635,7 +15784,7 @@ local.get $0 call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/pure/__visit (; 292 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 290 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 1820 i32.lt_u @@ -15745,7 +15894,7 @@ unreachable end ) - (func $~lib/rt/__visit_members (; 293 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 291 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$2 @@ -15768,7 +15917,7 @@ call $~lib/rt/pure/__visit end ) - (func $null (; 294 ;) (type $FUNCSIG$v) + (func $null (; 292 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 9970ce74..b8f34a17 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -3155,38 +3155,21 @@ end end ) - (func $~lib/rt/pure/__retainRelease (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 + (func $~lib/rt/pure/__release (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 - i32.ne + global.get $~lib/heap/HEAP_BASE + i32.gt_u if - global.get $~lib/heap/HEAP_BASE - local.set $2 - local.get $1 - local.get $2 - i32.gt_u - if - local.get $1 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end local.get $0 - local.get $2 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement end - local.get $1 ) (func $~lib/arraybuffer/ArrayBufferView#constructor (; 25 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 i32.const 1073741808 local.get $2 @@ -3229,10 +3212,22 @@ local.get $0 end local.tee $4 - local.get $4 - i32.load - local.get $3 - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release + end + local.get $5 + end i32.store local.get $0 local.get $3 @@ -3511,18 +3506,7 @@ i32.const 3 i32.shr_u ) - (func $~lib/rt/pure/__release (; 50 ;) (type $FUNCSIG$vi) (param $0 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/pure/decrement - end - ) - (func $std/typedarray/testInstantiate (; 51 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/typedarray/testInstantiate (; 50 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4052,7 +4036,7 @@ local.get $11 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#__set (; 52 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int32Array#__set (; 51 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -4076,7 +4060,7 @@ local.get $2 i32.store ) - (func $~lib/typedarray/Int32Array#__get (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#__get (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -4099,13 +4083,14 @@ i32.add i32.load ) - (func $~lib/typedarray/Int32Array#subarray (; 54 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#subarray (; 53 ;) (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 $9 i32) block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -4183,11 +4168,23 @@ local.set $7 local.get $7 local.tee $8 - local.get $8 - i32.load - local.get $5 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end i32.store local.get $7 local.get $5 @@ -4205,10 +4202,10 @@ i32.shl i32.store offset=8 local.get $7 - local.set $8 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $9 end local.tee $7 call $~lib/rt/pure/__retain @@ -4217,19 +4214,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $~lib/rt/pure/__skippedRelease (; 55 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 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/pure/decrement - end - local.get $1 - ) - (func $~lib/typedarray/Float64Array#__set (; 56 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64) + (func $~lib/typedarray/Float64Array#__set (; 54 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64) local.get $1 local.get $0 i32.load offset=8 @@ -4253,13 +4238,14 @@ local.get $2 f64.store ) - (func $~lib/typedarray/Float64Array#subarray (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#subarray (; 55 ;) (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 $9 i32) block $~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -4337,11 +4323,23 @@ local.set $7 local.get $7 local.tee $8 - local.get $8 - i32.load - local.get $5 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end i32.store local.get $7 local.get $5 @@ -4359,10 +4357,10 @@ i32.shl i32.store offset=8 local.get $7 - local.set $8 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $9 end local.tee $7 call $~lib/rt/pure/__retain @@ -4371,7 +4369,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $~lib/util/sort/insertionSort (; 58 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 56 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f64) (local $5 i32) @@ -4463,7 +4461,7 @@ unreachable end ) - (func $~lib/memory/memory.fill (; 59 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 57 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4726,7 +4724,7 @@ end end ) - (func $~lib/rt/tlsf/__free (; 60 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/tlsf/__free (; 58 ;) (type $FUNCSIG$vi) (param $0 i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -4763,7 +4761,7 @@ i32.sub call $~lib/rt/tlsf/freeBlock ) - (func $~lib/util/sort/weakHeapSort (; 61 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 59 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5058,7 +5056,7 @@ local.get $10 f64.store ) - (func $~lib/typedarray/Float64Array#sort (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#sort (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5157,7 +5155,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 63 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 61 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -5190,7 +5188,7 @@ i64.lt_s i32.sub ) - (func $~lib/typedarray/Float64Array#sort|trampoline (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#sort|trampoline (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -5209,7 +5207,7 @@ local.get $1 call $~lib/typedarray/Float64Array#sort ) - (func $~lib/typedarray/Float64Array#__get (; 65 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/typedarray/Float64Array#__get (; 63 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=8 @@ -5232,7 +5230,7 @@ i32.add f64.load ) - (func $~lib/typedarray/Uint8ClampedArray#__set (; 66 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#__set (; 64 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -5264,7 +5262,7 @@ i32.and i32.store8 ) - (func $~lib/typedarray/Uint8ClampedArray#__get (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#__get (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -5283,7 +5281,7 @@ i32.add i32.load8_u ) - (func $~lib/typedarray/Int8Array#__set (; 68 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int8Array#__set (; 66 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -5303,7 +5301,7 @@ local.get $2 i32.store8 ) - (func $~lib/typedarray/Int8Array#fill (; 69 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Int8Array#fill (; 67 ;) (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) @@ -5400,7 +5398,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/rt/__allocArray (; 70 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/__allocArray (; 68 ;) (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) @@ -5438,11 +5436,11 @@ end local.get $4 ) - (func $~lib/array/Array#get:length (; 71 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 69 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/typedarray/Int8Array#__get (; 72 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#__get (; 70 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -5461,7 +5459,7 @@ i32.add i32.load8_s ) - (func $~lib/array/Array#__unchecked_get (; 73 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 71 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -5470,7 +5468,7 @@ i32.add i32.load8_s ) - (func $~lib/array/Array#__get (; 74 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 72 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -5489,7 +5487,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $std/typedarray/isInt8ArrayEqual (; 75 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/isInt8ArrayEqual (; 73 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5562,13 +5560,14 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int8Array#subarray (; 76 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#subarray (; 74 ;) (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 $9 i32) block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -5646,11 +5645,23 @@ local.set $7 local.get $7 local.tee $8 - local.get $8 - i32.load - local.get $5 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end i32.store local.get $7 local.get $5 @@ -5668,10 +5679,10 @@ i32.shl i32.store offset=8 local.get $7 - local.set $8 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $9 end local.tee $7 call $~lib/rt/pure/__retain @@ -5680,7 +5691,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $~lib/typedarray/Int32Array#fill (; 77 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Int32Array#fill (; 75 ;) (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) @@ -5787,11 +5798,11 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/array/Array#get:length (; 78 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 76 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 79 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 77 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -5800,7 +5811,7 @@ i32.add i32.load ) - (func $~lib/array/Array#__get (; 80 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 78 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -5819,7 +5830,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $std/typedarray/isInt32ArrayEqual (; 81 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/isInt32ArrayEqual (; 79 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5892,7 +5903,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 82 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 80 ;) (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 @@ -5905,7 +5916,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int8Array#reduce (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduce (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5967,7 +5978,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> (; 84 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> (; 82 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6015,7 +6026,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#__set (; 85 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint8Array#__set (; 83 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -6035,7 +6046,7 @@ local.get $2 i32.store8 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 86 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 84 ;) (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 @@ -6048,7 +6059,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint8Array#reduce (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduce (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6110,7 +6121,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> (; 88 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> (; 86 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6156,7 +6167,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 89 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 87 ;) (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 @@ -6169,7 +6180,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint8ClampedArray#reduce (; 90 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#reduce (; 88 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6231,7 +6242,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> (; 91 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> (; 89 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6277,7 +6288,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#__set (; 92 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int16Array#__set (; 90 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -6301,7 +6312,7 @@ local.get $2 i32.store16 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 93 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 91 ;) (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 @@ -6314,7 +6325,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int16Array#reduce (; 94 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#reduce (; 92 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6376,7 +6387,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> (; 95 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> (; 93 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6424,7 +6435,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#__set (; 96 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint16Array#__set (; 94 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -6448,7 +6459,7 @@ local.get $2 i32.store16 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 97 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 95 ;) (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 @@ -6461,7 +6472,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint16Array#reduce (; 98 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reduce (; 96 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6523,7 +6534,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> (; 99 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> (; 97 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6569,7 +6580,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 100 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 98 ;) (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 @@ -6582,7 +6593,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int32Array#reduce (; 101 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduce (; 99 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6644,7 +6655,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> (; 102 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> (; 100 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6688,7 +6699,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array#__set (; 103 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint32Array#__set (; 101 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 @@ -6712,7 +6723,7 @@ local.get $2 i32.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 104 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 102 ;) (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 @@ -6725,7 +6736,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint32Array#reduce (; 105 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#reduce (; 103 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6787,7 +6798,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> (; 106 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> (; 104 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6831,7 +6842,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#__set (; 107 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/typedarray/Int64Array#__set (; 105 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 local.get $0 i32.load offset=8 @@ -6855,7 +6866,7 @@ local.get $2 i64.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 108 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 106 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) (local $4 i64) local.get $3 call $~lib/rt/pure/__retain @@ -6868,7 +6879,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int64Array#reduce (; 109 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Int64Array#reduce (; 107 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -6931,7 +6942,7 @@ call $~lib/rt/pure/__release local.get $9 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> (; 110 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> (; 108 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i64) @@ -6975,7 +6986,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#__set (; 111 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/typedarray/Uint64Array#__set (; 109 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) local.get $1 local.get $0 i32.load offset=8 @@ -6999,7 +7010,7 @@ local.get $2 i64.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 112 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 110 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) (local $4 i64) local.get $3 call $~lib/rt/pure/__retain @@ -7012,7 +7023,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint64Array#reduce (; 113 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Uint64Array#reduce (; 111 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -7075,7 +7086,7 @@ call $~lib/rt/pure/__release local.get $9 ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> (; 114 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> (; 112 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i64) @@ -7119,7 +7130,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#__set (; 115 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) + (func $~lib/typedarray/Float32Array#__set (; 113 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) local.get $1 local.get $0 i32.load offset=8 @@ -7143,7 +7154,7 @@ local.get $2 f32.store ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 116 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 114 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) (local $4 f32) local.get $3 call $~lib/rt/pure/__retain @@ -7156,7 +7167,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Float32Array#reduce (; 117 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (func $~lib/typedarray/Float32Array#reduce (; 115 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -7219,7 +7230,7 @@ call $~lib/rt/pure/__release local.get $9 ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> (; 118 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> (; 116 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 f32) @@ -7263,7 +7274,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 119 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 117 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) (local $4 f64) local.get $3 call $~lib/rt/pure/__retain @@ -7276,7 +7287,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Float64Array#reduce (; 120 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (func $~lib/typedarray/Float64Array#reduce (; 118 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) (local $3 i32) (local $4 i32) (local $5 f64) @@ -7339,7 +7350,7 @@ call $~lib/rt/pure/__release local.get $9 ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> (; 121 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> (; 119 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 f64) @@ -7383,7 +7394,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 122 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 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 @@ -7396,7 +7407,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int8Array#reduceRight (; 123 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduceRight (; 121 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7455,7 +7466,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> (; 124 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> (; 122 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7503,7 +7514,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 125 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 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 @@ -7516,7 +7527,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint8Array#reduceRight (; 126 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduceRight (; 124 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7575,7 +7586,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> (; 127 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> (; 125 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7621,7 +7632,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 128 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 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 @@ -7634,7 +7645,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint8ClampedArray#reduceRight (; 129 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#reduceRight (; 127 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7693,7 +7704,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> (; 130 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> (; 128 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7739,7 +7750,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 131 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 129 ;) (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 @@ -7752,7 +7763,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int16Array#reduceRight (; 132 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#reduceRight (; 130 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7811,7 +7822,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> (; 133 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> (; 131 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7859,7 +7870,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 134 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 132 ;) (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 @@ -7872,7 +7883,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint16Array#reduceRight (; 135 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reduceRight (; 133 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7931,7 +7942,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> (; 136 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> (; 134 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -7977,7 +7988,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 137 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 135 ;) (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 @@ -7990,7 +8001,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int32Array#reduceRight (; 138 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduceRight (; 136 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8049,7 +8060,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> (; 139 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> (; 137 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8093,7 +8104,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 140 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 138 ;) (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 @@ -8106,7 +8117,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint32Array#reduceRight (; 141 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#reduceRight (; 139 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8165,7 +8176,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> (; 142 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> (; 140 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8209,7 +8220,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 143 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 141 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) (local $4 i64) local.get $3 call $~lib/rt/pure/__retain @@ -8222,7 +8233,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Int64Array#reduceRight (; 144 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Int64Array#reduceRight (; 142 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -8282,7 +8293,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> (; 145 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> (; 143 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i64) @@ -8326,7 +8337,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 146 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 144 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) (local $4 i64) local.get $3 call $~lib/rt/pure/__retain @@ -8339,7 +8350,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Uint64Array#reduceRight (; 147 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Uint64Array#reduceRight (; 145 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -8399,7 +8410,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> (; 148 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> (; 146 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i64) @@ -8443,7 +8454,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 149 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 147 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) (local $4 f32) local.get $3 call $~lib/rt/pure/__retain @@ -8456,7 +8467,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Float32Array#reduceRight (; 150 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (func $~lib/typedarray/Float32Array#reduceRight (; 148 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -8516,7 +8527,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> (; 151 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> (; 149 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 f32) @@ -8560,7 +8571,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 152 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 150 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) (local $4 f64) local.get $3 call $~lib/rt/pure/__retain @@ -8573,7 +8584,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/typedarray/Float64Array#reduceRight (; 153 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (func $~lib/typedarray/Float64Array#reduceRight (; 151 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) (local $3 i32) (local $4 i32) (local $5 f64) @@ -8633,7 +8644,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> (; 154 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> (; 152 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 f64) @@ -8677,7 +8688,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 155 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 153 ;) (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 @@ -8690,7 +8701,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int8Array#map (; 156 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#map (; 154 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8773,7 +8784,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (; 157 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (; 155 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8848,7 +8859,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 158 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 156 ;) (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 @@ -8861,7 +8872,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint8Array#map (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#map (; 157 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8944,7 +8955,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $~lib/typedarray/Uint8Array#__get (; 160 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__get (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -8963,7 +8974,7 @@ i32.add i32.load8_u ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> (; 161 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> (; 159 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9038,7 +9049,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 162 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 160 ;) (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 @@ -9051,7 +9062,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint8ClampedArray#map (; 163 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#map (; 161 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9134,7 +9145,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (; 164 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (; 162 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9209,7 +9220,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 165 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 163 ;) (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 @@ -9222,7 +9233,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int16Array#map (; 166 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#map (; 164 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9305,7 +9316,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $~lib/typedarray/Int16Array#__get (; 167 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#__get (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -9328,7 +9339,7 @@ i32.add i32.load16_s ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> (; 168 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> (; 166 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9403,7 +9414,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 169 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 167 ;) (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 @@ -9416,7 +9427,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint16Array#map (; 170 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#map (; 168 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9499,7 +9510,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $~lib/typedarray/Uint16Array#__get (; 171 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#__get (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -9522,7 +9533,7 @@ i32.add i32.load16_u ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> (; 172 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> (; 170 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9597,7 +9608,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 173 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 171 ;) (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 @@ -9610,7 +9621,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int32Array#map (; 174 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#map (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9693,7 +9704,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> (; 175 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> (; 173 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9768,7 +9779,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 176 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 174 ;) (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 @@ -9781,7 +9792,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint32Array#map (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#map (; 175 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9864,7 +9875,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $~lib/typedarray/Uint32Array#__get (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#__get (; 176 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 @@ -9887,7 +9898,7 @@ i32.add i32.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> (; 179 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> (; 177 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9962,7 +9973,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 180 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 178 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) (local $3 i64) local.get $2 call $~lib/rt/pure/__retain @@ -9975,7 +9986,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int64Array#map (; 181 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#map (; 179 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10058,7 +10069,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $~lib/typedarray/Int64Array#__get (; 182 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Int64Array#__get (; 180 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 i32.load offset=8 @@ -10081,7 +10092,7 @@ i32.add i64.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> (; 183 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> (; 181 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10156,7 +10167,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 184 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 182 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) (local $3 i64) local.get $2 call $~lib/rt/pure/__retain @@ -10169,7 +10180,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint64Array#map (; 185 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#map (; 183 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10252,7 +10263,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $~lib/typedarray/Uint64Array#__get (; 186 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Uint64Array#__get (; 184 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 i32.load offset=8 @@ -10275,7 +10286,7 @@ i32.add i64.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> (; 187 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> (; 185 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10350,7 +10361,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 188 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 186 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) (local $3 f32) local.get $2 call $~lib/rt/pure/__retain @@ -10363,7 +10374,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Float32Array#map (; 189 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#map (; 187 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10446,7 +10457,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $~lib/typedarray/Float32Array#__get (; 190 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/typedarray/Float32Array#__get (; 188 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=8 @@ -10469,7 +10480,7 @@ i32.add f32.load ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> (; 191 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> (; 189 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10544,7 +10555,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 192 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 190 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) (local $3 f64) local.get $2 call $~lib/rt/pure/__retain @@ -10557,7 +10568,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Float64Array#map (; 193 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#map (; 191 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10640,7 +10651,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> (; 194 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> (; 192 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10715,7 +10726,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 195 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 193 ;) (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 @@ -10732,7 +10743,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int8Array#some (; 196 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#some (; 194 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10800,7 +10811,7 @@ local.get $6 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 197 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 195 ;) (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 @@ -10817,7 +10828,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> (; 198 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> (; 196 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10878,7 +10889,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 199 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 197 ;) (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 @@ -10893,7 +10904,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint8Array#some (; 200 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#some (; 198 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10961,7 +10972,7 @@ local.get $6 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 201 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 199 ;) (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 @@ -10976,7 +10987,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> (; 202 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> (; 200 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11037,7 +11048,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 203 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 201 ;) (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 @@ -11052,7 +11063,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint8ClampedArray#some (; 204 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#some (; 202 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11120,7 +11131,7 @@ local.get $6 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 205 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 203 ;) (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 @@ -11135,7 +11146,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> (; 206 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> (; 204 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11196,7 +11207,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 207 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 205 ;) (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 @@ -11213,7 +11224,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int16Array#some (; 208 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#some (; 206 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11281,7 +11292,7 @@ local.get $6 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 209 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 207 ;) (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 @@ -11298,7 +11309,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> (; 210 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> (; 208 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11359,7 +11370,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 211 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 209 ;) (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 @@ -11374,7 +11385,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint16Array#some (; 212 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#some (; 210 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11442,7 +11453,7 @@ local.get $6 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 213 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 211 ;) (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 @@ -11457,7 +11468,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> (; 214 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> (; 212 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11518,7 +11529,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 215 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 213 ;) (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 @@ -11531,7 +11542,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int32Array#some (; 216 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#some (; 214 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11599,7 +11610,7 @@ local.get $6 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 217 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 215 ;) (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 @@ -11612,7 +11623,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> (; 218 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> (; 216 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11673,7 +11684,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 219 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 217 ;) (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 @@ -11686,7 +11697,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint32Array#some (; 220 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#some (; 218 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11754,7 +11765,7 @@ local.get $6 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 221 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 219 ;) (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 @@ -11767,7 +11778,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> (; 222 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> (; 220 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11828,7 +11839,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 223 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 221 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -11841,7 +11852,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int64Array#some (; 224 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#some (; 222 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11909,7 +11920,7 @@ local.get $6 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 225 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 223 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -11922,7 +11933,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> (; 226 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> (; 224 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11983,7 +11994,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 227 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 225 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -11996,7 +12007,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint64Array#some (; 228 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#some (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12064,7 +12075,7 @@ local.get $6 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 229 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 227 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -12077,7 +12088,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> (; 230 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> (; 228 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12138,7 +12149,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 231 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 229 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -12151,7 +12162,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Float32Array#some (; 232 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#some (; 230 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12219,7 +12230,7 @@ local.get $6 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 233 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 231 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -12232,7 +12243,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> (; 234 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> (; 232 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12293,7 +12304,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 235 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 233 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -12306,7 +12317,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Float64Array#some (; 236 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#some (; 234 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12374,7 +12385,7 @@ local.get $6 end ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 237 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 235 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -12387,7 +12398,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> (; 238 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> (; 236 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12448,7 +12459,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 239 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 237 ;) (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 @@ -12465,7 +12476,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int8Array#findIndex (; 240 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#findIndex (; 238 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12533,7 +12544,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 241 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 239 ;) (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 @@ -12550,7 +12561,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> (; 242 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> (; 240 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12610,7 +12621,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 243 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 241 ;) (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 @@ -12625,7 +12636,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint8Array#findIndex (; 244 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#findIndex (; 242 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12693,7 +12704,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 245 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 243 ;) (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 @@ -12708,7 +12719,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> (; 246 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> (; 244 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12768,7 +12779,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 247 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 245 ;) (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 @@ -12783,7 +12794,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint8ClampedArray#findIndex (; 248 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#findIndex (; 246 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12851,7 +12862,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 249 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 247 ;) (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 @@ -12866,7 +12877,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> (; 250 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> (; 248 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12926,7 +12937,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 251 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 249 ;) (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 @@ -12943,7 +12954,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int16Array#findIndex (; 252 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#findIndex (; 250 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13011,7 +13022,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 253 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 251 ;) (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 @@ -13028,7 +13039,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> (; 254 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> (; 252 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13088,7 +13099,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 255 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 253 ;) (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 @@ -13103,7 +13114,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint16Array#findIndex (; 256 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#findIndex (; 254 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13171,7 +13182,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 257 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 255 ;) (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 @@ -13186,7 +13197,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> (; 258 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> (; 256 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13246,7 +13257,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 259 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 257 ;) (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 @@ -13259,7 +13270,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int32Array#findIndex (; 260 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#findIndex (; 258 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13327,7 +13338,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 261 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 259 ;) (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 @@ -13340,7 +13351,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> (; 262 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> (; 260 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13400,7 +13411,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 263 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 261 ;) (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 @@ -13413,7 +13424,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint32Array#findIndex (; 264 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#findIndex (; 262 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13481,7 +13492,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 265 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 263 ;) (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 @@ -13494,7 +13505,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> (; 266 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> (; 264 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13554,7 +13565,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 267 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 265 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -13567,7 +13578,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int64Array#findIndex (; 268 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#findIndex (; 266 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13635,7 +13646,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 269 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 267 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -13648,7 +13659,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> (; 270 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> (; 268 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13708,7 +13719,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 271 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 269 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -13721,7 +13732,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint64Array#findIndex (; 272 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#findIndex (; 270 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13789,7 +13800,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 273 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 271 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -13802,7 +13813,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> (; 274 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> (; 272 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13862,7 +13873,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 275 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 273 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -13875,7 +13886,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Float32Array#findIndex (; 276 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#findIndex (; 274 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13943,7 +13954,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 277 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 275 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -13956,7 +13967,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> (; 278 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> (; 276 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14016,7 +14027,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 279 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 277 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -14029,7 +14040,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Float64Array#findIndex (; 280 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#findIndex (; 278 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14097,7 +14108,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 281 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 279 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -14110,7 +14121,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> (; 282 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> (; 280 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14170,7 +14181,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 283 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 281 ;) (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 @@ -14189,7 +14200,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int8Array#every (; 284 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#every (; 282 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14260,7 +14271,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 285 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (; 283 ;) (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 @@ -14277,7 +14288,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> (; 286 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> (; 284 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14338,7 +14349,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 287 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 285 ;) (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 @@ -14355,7 +14366,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint8Array#every (; 288 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#every (; 286 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14426,7 +14437,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 289 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (; 287 ;) (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 @@ -14441,7 +14452,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> (; 290 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> (; 288 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14502,7 +14513,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 291 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 289 ;) (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 @@ -14519,7 +14530,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint8ClampedArray#every (; 292 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#every (; 290 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14590,7 +14601,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 293 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (; 291 ;) (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 @@ -14605,7 +14616,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> (; 294 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> (; 292 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14666,7 +14677,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 295 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 293 ;) (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 @@ -14685,7 +14696,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int16Array#every (; 296 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#every (; 294 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14756,7 +14767,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 297 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (; 295 ;) (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 @@ -14773,7 +14784,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> (; 298 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> (; 296 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14834,7 +14845,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 299 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 297 ;) (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 @@ -14851,7 +14862,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint16Array#every (; 300 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#every (; 298 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14922,7 +14933,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 301 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (; 299 ;) (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 @@ -14937,7 +14948,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> (; 302 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> (; 300 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -14998,7 +15009,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 303 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 301 ;) (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 @@ -15013,7 +15024,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int32Array#every (; 304 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#every (; 302 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15084,7 +15095,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 305 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (; 303 ;) (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 @@ -15097,7 +15108,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> (; 306 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> (; 304 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -15158,7 +15169,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 307 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 305 ;) (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 @@ -15173,7 +15184,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint32Array#every (; 308 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#every (; 306 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15244,7 +15255,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 309 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (; 307 ;) (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 @@ -15257,7 +15268,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> (; 310 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> (; 308 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -15318,7 +15329,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 311 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 309 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -15333,7 +15344,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Int64Array#every (; 312 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#every (; 310 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15404,7 +15415,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 313 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (; 311 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -15417,7 +15428,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> (; 314 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> (; 312 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -15478,7 +15489,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 315 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 313 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -15493,7 +15504,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Uint64Array#every (; 316 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#every (; 314 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15564,7 +15575,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 317 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (; 315 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -15577,7 +15588,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> (; 318 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> (; 316 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -15638,12 +15649,12 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/builtins/isNaN (; 319 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/builtins/isNaN (; 317 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.ne ) - (func $~lib/math/NativeMathf.mod (; 320 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 318 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15889,7 +15900,7 @@ local.get $2 f32.reinterpret_i32 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 321 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 319 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -15904,7 +15915,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Float32Array#every (; 322 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#every (; 320 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15975,7 +15986,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 323 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (; 321 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -15988,7 +15999,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 324 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> (; 322 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -16049,12 +16060,12 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/builtins/isNaN (; 325 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 323 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $~lib/math/NativeMath.mod (; 326 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 324 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -16302,7 +16313,7 @@ local.get $2 f64.reinterpret_i64 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 327 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 325 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -16317,7 +16328,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/typedarray/Float64Array#every (; 328 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#every (; 326 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16388,7 +16399,7 @@ local.get $6 end ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 329 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (; 327 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -16401,7 +16412,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 330 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> (; 328 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -16462,7 +16473,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 331 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (; 329 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -16522,7 +16533,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#forEach (; 332 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int8Array#forEach (; 330 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16574,7 +16585,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 333 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> (; 331 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -16637,7 +16648,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 334 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (; 332 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -16693,7 +16704,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#forEach (; 335 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#forEach (; 333 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16745,7 +16756,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 336 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> (; 334 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -16802,7 +16813,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 337 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (; 335 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -16858,7 +16869,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray#forEach (; 338 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8ClampedArray#forEach (; 336 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16910,7 +16921,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 339 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> (; 337 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -16967,7 +16978,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 340 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (; 338 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -17027,7 +17038,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#forEach (; 341 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int16Array#forEach (; 339 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17079,7 +17090,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 342 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> (; 340 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -17142,7 +17153,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 343 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (; 341 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -17198,7 +17209,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#forEach (; 344 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint16Array#forEach (; 342 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17250,7 +17261,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 345 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> (; 343 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -17307,7 +17318,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 346 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (; 344 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -17359,7 +17370,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#forEach (; 347 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int32Array#forEach (; 345 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17411,7 +17422,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 348 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> (; 346 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -17462,7 +17473,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 349 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (; 347 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -17514,7 +17525,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array#forEach (; 350 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint32Array#forEach (; 348 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17566,7 +17577,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 351 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> (; 349 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -17617,7 +17628,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 352 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (; 350 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -17670,7 +17681,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#forEach (; 353 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int64Array#forEach (; 351 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17722,7 +17733,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 354 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> (; 352 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -17776,7 +17787,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 355 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (; 353 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -17829,7 +17840,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#forEach (; 356 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint64Array#forEach (; 354 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17881,7 +17892,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 357 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> (; 355 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -17935,7 +17946,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 358 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (; 356 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -17988,7 +17999,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#forEach (; 359 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float32Array#forEach (; 357 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18040,7 +18051,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 360 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> (; 358 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -18094,7 +18105,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 361 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (; 359 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -18147,7 +18158,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#forEach (; 362 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float64Array#forEach (; 360 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18199,7 +18210,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 363 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> (; 361 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -18253,7 +18264,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#reverse (; 364 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reverse (; 362 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -18330,7 +18341,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 365 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 363 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -18515,7 +18526,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#reverse (; 366 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reverse (; 364 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -18592,13 +18603,14 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint8Array#subarray (; 367 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#subarray (; 365 ;) (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 $9 i32) block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -18676,11 +18688,23 @@ local.set $7 local.get $7 local.tee $8 - local.get $8 - i32.load - local.get $5 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end i32.store local.get $7 local.get $5 @@ -18698,10 +18722,10 @@ i32.shl i32.store offset=8 local.get $7 - local.set $8 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $9 end local.tee $7 call $~lib/rt/pure/__retain @@ -18710,7 +18734,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 368 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 366 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -18889,7 +18913,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray#reverse (; 369 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#reverse (; 367 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -18966,13 +18990,14 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (; 370 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#subarray (; 368 ;) (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 $9 i32) block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -19050,11 +19075,23 @@ local.set $7 local.get $7 local.tee $8 - local.get $8 - i32.load - local.get $5 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end i32.store local.get $7 local.get $5 @@ -19072,10 +19109,10 @@ i32.shl i32.store offset=8 local.get $7 - local.set $8 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $9 end local.tee $7 call $~lib/rt/pure/__retain @@ -19084,7 +19121,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 371 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 369 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -19263,7 +19300,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#reverse (; 372 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reverse (; 370 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -19340,13 +19377,14 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Int16Array#subarray (; 373 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (; 371 ;) (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 $9 i32) block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -19424,11 +19462,23 @@ local.set $7 local.get $7 local.tee $8 - local.get $8 - i32.load - local.get $5 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end i32.store local.get $7 local.get $5 @@ -19446,10 +19496,10 @@ i32.shl i32.store offset=8 local.get $7 - local.set $8 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $9 end local.tee $7 call $~lib/rt/pure/__retain @@ -19458,7 +19508,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 374 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 372 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -19643,7 +19693,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#reverse (; 375 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reverse (; 373 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -19720,13 +19770,14 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint16Array#subarray (; 376 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#subarray (; 374 ;) (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 $9 i32) block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -19804,11 +19855,23 @@ local.set $7 local.get $7 local.tee $8 - local.get $8 - i32.load - local.get $5 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end i32.store local.get $7 local.get $5 @@ -19826,10 +19889,10 @@ i32.shl i32.store offset=8 local.get $7 - local.set $8 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $9 end local.tee $7 call $~lib/rt/pure/__retain @@ -19838,7 +19901,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 377 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 375 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -20017,7 +20080,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#reverse (; 378 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#reverse (; 376 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -20094,7 +20157,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 379 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 377 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -20267,7 +20330,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array#reverse (; 380 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#reverse (; 378 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -20344,13 +20407,14 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint32Array#subarray (; 381 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#subarray (; 379 ;) (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 $9 i32) block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -20428,11 +20492,23 @@ local.set $7 local.get $7 local.tee $8 - local.get $8 - i32.load - local.get $5 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end i32.store local.get $7 local.get $5 @@ -20450,10 +20526,10 @@ i32.shl i32.store offset=8 local.get $7 - local.set $8 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $9 end local.tee $7 call $~lib/rt/pure/__retain @@ -20462,7 +20538,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 382 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 380 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -20635,7 +20711,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#reverse (; 383 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#reverse (; 381 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -20712,13 +20788,14 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Int64Array#subarray (; 384 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#subarray (; 382 ;) (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 $9 i32) block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -20796,11 +20873,23 @@ local.set $7 local.get $7 local.tee $8 - local.get $8 - i32.load - local.get $5 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end i32.store local.get $7 local.get $5 @@ -20818,10 +20907,10 @@ i32.shl i32.store offset=8 local.get $7 - local.set $8 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $9 end local.tee $7 call $~lib/rt/pure/__retain @@ -20830,7 +20919,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 385 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 383 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -21006,7 +21095,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#reverse (; 386 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#reverse (; 384 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -21083,13 +21172,14 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint64Array#subarray (; 387 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array#subarray (; 385 ;) (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 $9 i32) block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -21167,11 +21257,23 @@ local.set $7 local.get $7 local.tee $8 - local.get $8 - i32.load - local.get $5 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end i32.store local.get $7 local.get $5 @@ -21189,10 +21291,10 @@ i32.shl i32.store offset=8 local.get $7 - local.set $8 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $9 end local.tee $7 call $~lib/rt/pure/__retain @@ -21201,7 +21303,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 388 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 386 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -21377,7 +21479,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#reverse (; 389 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#reverse (; 387 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -21454,13 +21556,14 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Float32Array#subarray (; 390 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#subarray (; 388 ;) (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 $9 i32) block $~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $0 call $~lib/rt/pure/__retain @@ -21538,11 +21641,23 @@ local.set $7 local.get $7 local.tee $8 - local.get $8 - i32.load - local.get $5 - i32.load - call $~lib/rt/pure/__retainRelease + block (result i32) + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + end i32.store local.get $7 local.get $5 @@ -21560,10 +21675,10 @@ i32.shl i32.store offset=8 local.get $7 - local.set $8 + local.set $9 local.get $5 call $~lib/rt/pure/__release - local.get $8 + local.get $9 end local.tee $7 call $~lib/rt/pure/__retain @@ -21572,7 +21687,7 @@ call $~lib/rt/pure/__release local.get $6 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 391 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 389 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -21748,7 +21863,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#reverse (; 392 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#reverse (; 390 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -21825,7 +21940,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 393 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 391 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -22001,7 +22116,7 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $start:std/typedarray (; 394 ;) (type $FUNCSIG$v) + (func $start:std/typedarray (; 392 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -22248,12 +22363,16 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#subarray - call $~lib/rt/pure/__skippedRelease + block (result i32) + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + end local.set $0 local.get $0 call $~lib/typedarray/Int32Array#get:length @@ -22352,12 +22471,16 @@ i32.const 7 f64.const 8 call $~lib/typedarray/Float64Array#__set - local.get $0 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Float64Array#subarray - call $~lib/rt/pure/__skippedRelease + block (result i32) + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + end local.set $0 local.get $0 call $~lib/typedarray/Float64Array#get:length @@ -23323,7 +23446,7 @@ global.get $std/typedarray/testArrayReverseValues call $~lib/rt/pure/__release ) - (func $std/typedarray/main (; 395 ;) (type $FUNCSIG$v) + (func $std/typedarray/main (; 393 ;) (type $FUNCSIG$v) global.get $~lib/started i32.eqz if @@ -23332,16 +23455,16 @@ global.set $~lib/started end ) - (func $start (; 396 ;) (type $FUNCSIG$v) + (func $start (; 394 ;) (type $FUNCSIG$v) call $start:std/typedarray ) - (func $~lib/array/Array#__visit_impl (; 397 ;) (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/array/Array#__visit_impl (; 398 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 396 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/markGray (; 399 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 397 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -23368,7 +23491,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 400 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 398 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -23385,7 +23508,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 401 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 399 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -23422,7 +23545,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 402 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 400 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -23451,7 +23574,7 @@ local.get $0 call $~lib/rt/tlsf/freeBlock ) - (func $~lib/rt/pure/__visit (; 403 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 401 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -23605,7 +23728,7 @@ end end ) - (func $~lib/rt/__visit_members (; 404 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 402 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block @@ -23701,6 +23824,6 @@ end unreachable ) - (func $null (; 405 ;) (type $FUNCSIG$v) + (func $null (; 403 ;) (type $FUNCSIG$v) ) )