From d7d40cfe5cb4b292366ba93ac98ed225edb641b8 Mon Sep 17 00:00:00 2001 From: dcode Date: Wed, 22 Apr 2020 04:03:28 +0200 Subject: [PATCH 1/5] Update Binaryen and utilize new ExpressionRunner API --- package-lock.json | 6 +- package.json | 2 +- scripts/update-constants.js | 2 +- src/compiler.ts | 191 +- src/glue/binaryen.d.ts | 11 + src/module.ts | 13 +- tests/compiler/assert-nonnull.untouched.wat | 10 + tests/compiler/assert.untouched.wat | 10 + tests/compiler/binary.untouched.wat | 84 +- tests/compiler/builtins.untouched.wat | 4 + tests/compiler/call-super.untouched.wat | 2 + tests/compiler/class.untouched.wat | 10 +- tests/compiler/constructor.untouched.wat | 2 + tests/compiler/do.untouched.wat | 86 +- tests/compiler/exports.untouched.wat | 2 + .../extends-baseaggregate.untouched.wat | 114 +- .../compiler/extends-recursive.untouched.wat | 2 + tests/compiler/features/simd.untouched.wat | 6 + tests/compiler/features/threads.untouched.wat | 2 + tests/compiler/for.untouched.wat | 84 +- tests/compiler/getter-call.untouched.wat | 2 + .../implicit-getter-setter.untouched.wat | 82 +- tests/compiler/infer-array.untouched.wat | 39 + tests/compiler/inlining.untouched.wat | 2 + tests/compiler/instanceof-class.untouched.wat | 2 + tests/compiler/instanceof.untouched.wat | 44 +- tests/compiler/issues/1095.untouched.wat | 82 +- tests/compiler/managed-cast.untouched.wat | 82 +- tests/compiler/mandelbrot.untouched.wat | 27 +- tests/compiler/new.untouched.wat | 2 + tests/compiler/number.untouched.wat | 41 + .../optional-typeparameters.untouched.wat | 2 + tests/compiler/possibly-null.untouched.wat | 64 +- tests/compiler/rc/global-init.untouched.wat | 40 + tests/compiler/rc/local-init.untouched.wat | 82 +- .../rc/logical-and-mismatch.untouched.wat | 82 +- .../rc/logical-or-mismatch.untouched.wat | 82 +- tests/compiler/rc/optimize.untouched.wat | 82 +- tests/compiler/rc/rereturn.untouched.wat | 82 +- .../rc/ternary-mismatch.untouched.wat | 82 +- tests/compiler/resolve-access.untouched.wat | 49 +- tests/compiler/resolve-binary.untouched.wat | 77 +- .../resolve-elementaccess.untouched.wat | 45 + .../resolve-function-expression.untouched.wat | 19 + tests/compiler/resolve-nested.untouched.wat | 2 + tests/compiler/resolve-new.untouched.wat | 2 + .../resolve-propertyaccess.untouched.wat | 19 + tests/compiler/resolve-ternary.untouched.wat | 128 +- tests/compiler/resolve-unary.untouched.wat | 19 + tests/compiler/retain-i32.untouched.wat | 2 +- .../retain-release-sanity.untouched.wat | 130 +- tests/compiler/retain-release.untouched.wat | 2 + tests/compiler/retain-return.untouched.wat | 82 +- tests/compiler/rt/instanceof.untouched.wat | 2 + tests/compiler/rt/stub-realloc.untouched.wat | 18 + tests/compiler/runtime-full.untouched.wat | 82 +- tests/compiler/runtime-stub.untouched.wat | 2 + tests/compiler/std/array-access.untouched.wat | 21 + .../compiler/std/array-literal.untouched.wat | 106 +- tests/compiler/std/array.optimized.wat | 6 +- tests/compiler/std/array.untouched.wat | 743 +- tests/compiler/std/arraybuffer.untouched.wat | 1638 +- tests/compiler/std/dataview.untouched.wat | 146 +- tests/compiler/std/date.untouched.wat | 2 + tests/compiler/std/hash.untouched.wat | 154 + tests/compiler/std/libm.untouched.wat | 337 +- tests/compiler/std/map.untouched.wat | 1561 +- tests/compiler/std/math.untouched.wat | 357 +- tests/compiler/std/new.untouched.wat | 2 + .../std/object-literal-omitted.untouched.wat | 86 +- .../object-literal-unmanaged.untouched.wat | 62 +- .../compiler/std/object-literal.untouched.wat | 6 + tests/compiler/std/object.untouched.wat | 24 + .../std/operator-overloading.untouched.wat | 38 +- tests/compiler/std/pointer.untouched.wat | 28 + tests/compiler/std/polyfills.untouched.wat | 202 + tests/compiler/std/set.untouched.wat | 880 +- tests/compiler/std/simd.untouched.wat | 9 + tests/compiler/std/static-array.untouched.wat | 36 + tests/compiler/std/staticarray.untouched.wat | 103 +- .../std/string-casemapping.untouched.wat | 172 +- .../std/string-encoding.untouched.wat | 104 +- tests/compiler/std/string.untouched.wat | 235 +- tests/compiler/std/symbol.untouched.wat | 114 + tests/compiler/std/typedarray.untouched.wat | 53112 ---------------- tests/compiler/ternary.untouched.wat | 16 + tests/compiler/typeof.untouched.wat | 6 + .../wasi/snapshot_preview1.untouched.wat | 10 + tests/compiler/wasi/trace.untouched.wat | 24 + tests/compiler/while.untouched.wat | 84 +- 90 files changed, 9018 insertions(+), 53732 deletions(-) diff --git a/package-lock.json b/package-lock.json index ce365483ac..d0e82adf0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -566,9 +566,9 @@ "dev": true }, "binaryen": { - "version": "91.0.0-nightly.20200414", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-91.0.0-nightly.20200414.tgz", - "integrity": "sha512-ISiX15PTxlEuM57XXt0Dt6Yts4BRIawWUnrx1RhVlReGd9kI4+MZyANTV+blkMBETRz1VnCHaUtQ7Syb/GHYKQ==" + "version": "92.0.0-nightly.20200422", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-92.0.0-nightly.20200422.tgz", + "integrity": "sha512-Cx3tPXCwTGdnPQ4JtZR0Jrv9GZqHUwp+6jMP6l2kqAT06kzh+6g3/K0ZsEBqq3CuzJ2kvKK7/BXSZcZZRdTWMg==" }, "bindings": { "version": "1.5.0", diff --git a/package.json b/package.json index c4d41e8239..40e2a44efc 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "91.0.0-nightly.20200414", + "binaryen": "92.0.0-nightly.20200422", "long": "^4.0.0", "source-map-support": "^0.5.16", "ts-node": "^6.2.0" diff --git a/scripts/update-constants.js b/scripts/update-constants.js index 8480ee6c1c..41058903bc 100644 --- a/scripts/update-constants.js +++ b/scripts/update-constants.js @@ -10,7 +10,7 @@ var src = fs.readFileSync(srcfile, "utf8"); binaryen.ready.then(() => { src = src.replace(/(?:enum|namespace) (\w+) \{([^}]*)\}/g, function($0) { return $0.replace(/(\w+)[ ]+=[ ]+([^,;\n]+)/g, function($0, key, val) { - var match = val.match(/\b(_Binaryen\w+)\b/); + var match = val.match(/\b(_(?:Binaryen|Relooper|ExpressionRunner)\w+)\b/); if (match) { let fn = match[1]; if (typeof binaryen[fn] !== "function") throw Error("API mismatch: Is Binaryen up to date?"); diff --git a/src/compiler.ts b/src/compiler.ts index 4cf331166e..d8c23a5427 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -48,7 +48,7 @@ import { getGlobalGetName, isGlobalMutable, createType, - hasSideEffects + ExpressionRunnerFlags } from "./module"; import { @@ -1053,10 +1053,16 @@ export class Compiler extends DiagnosticEmitter { // If not a constant, attempt to precompute if (getExpressionId(initExpr) != ExpressionId.Const) { if (isDeclaredConstant) { - let origInitExpr = initExpr; - initExpr = module.precomputeExpression(initExpr); - if (getExpressionId(initExpr) != ExpressionId.Const) initializeInStart = true; - if (this.skippedAutoreleases.has(origInitExpr)) this.skippedAutoreleases.add(initExpr); + if (getExpressionId(initExpr) != ExpressionId.Const) { + let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + assert(getExpressionId(precomp) == ExpressionId.Const); + initExpr = precomp; + } else { + initializeInStart = true; + } + } + if (this.skippedAutoreleases.has(initExpr)) this.skippedAutoreleases.add(initExpr); } else { initializeInStart = true; } @@ -1180,8 +1186,11 @@ export class Compiler extends DiagnosticEmitter { Constraints.CONV_IMPLICIT // autorelease is not applicable in i32 context ); if (getExpressionId(initExpr) != ExpressionId.Const) { - initExpr = module.precomputeExpression(initExpr); - if (getExpressionId(initExpr) != ExpressionId.Const) { + let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + assert(getExpressionId(precomp) == ExpressionId.Const); + initExpr = precomp; + } else { if (element.is(CommonFlags.CONST)) { this.error( DiagnosticCode.In_const_enum_declarations_member_initializer_must_be_constant_expression, @@ -1209,16 +1218,19 @@ export class Compiler extends DiagnosticEmitter { module.global_get(previousValue.internalName, NativeType.I32), module.i32(1) ); - } - initExpr = module.precomputeExpression(initExpr); - if (getExpressionId(initExpr) != ExpressionId.Const) { - if (element.is(CommonFlags.CONST)) { - this.error( - DiagnosticCode.In_const_enum_declarations_member_initializer_must_be_constant_expression, - member.declaration.range - ); + let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + assert(getExpressionId(precomp) == ExpressionId.Const); + initExpr = precomp; + } else { + if (element.is(CommonFlags.CONST)) { + this.error( + DiagnosticCode.In_const_enum_declarations_member_initializer_must_be_constant_expression, + member.declaration.range + ); + } + initInStart = true; } - initInStart = true; } } this.currentFlow = previousFlow; @@ -2211,31 +2223,25 @@ export class Compiler extends DiagnosticEmitter { let condFlow = flow.fork(); this.currentFlow = condFlow; - let condExpr = module.precomputeExpression( - this.makeIsTrueish( - this.compileExpression(statement.condition, Type.i32), - this.currentType - ) + let condExpr = this.makeIsTrueish( + this.compileExpression(statement.condition, Type.i32), + this.currentType ); - let condKind = evaluateConditionKind(condExpr); + let condKind = this.evaluateCondition(condExpr); // Shortcut if condition is always false if (condKind == ConditionKind.FALSE) { - if (hasSideEffects(condExpr)) { - bodyStmts.push( - module.drop(condExpr) - ); - } + bodyStmts.push( + module.drop(condExpr) + ); this.performAutoreleases(condFlow, bodyStmts); flow.inherit(bodyFlow); // Terminate if condition is always true and body never breaks } else if (condKind == ConditionKind.TRUE && !bodyFlow.isAny(FlowFlags.BREAKS | FlowFlags.CONDITIONALLY_BREAKS)) { - if (hasSideEffects(condExpr)) { - bodyStmts.push( - module.drop(condExpr) - ); - } + bodyStmts.push( + module.drop(condExpr) + ); this.performAutoreleases(condFlow, bodyStmts); bodyStmts.push( module.br(continueLabel) @@ -2361,21 +2367,17 @@ export class Compiler extends DiagnosticEmitter { var condKind: ConditionKind; var condition = statement.condition; if (condition) { - condExpr = module.precomputeExpression( - this.makeIsTrueish( - this.compileExpression(condition, Type.bool), - this.currentType - ) + condExpr = this.makeIsTrueish( + this.compileExpression(condition, Type.bool), + this.currentType ); - condKind = evaluateConditionKind(condExpr); + condKind = this.evaluateCondition(condExpr); // Shortcut if condition is always false (body never runs) if (condKind == ConditionKind.FALSE) { - if (hasSideEffects(condExpr)) { - stmts.push( - module.drop(condExpr) - ); - } + stmts.push( + module.drop(condExpr) + ); this.performAutoreleases(condFlow, stmts); condFlow.freeScopedLocals(); flow.inherit(condFlow); @@ -2524,37 +2526,27 @@ export class Compiler extends DiagnosticEmitter { // [autorelease] incl. condition // Precompute the condition (always executes) - var condExpr = module.precomputeExpression( - this.makeIsTrueish( - this.compileExpression(statement.condition, Type.bool), - this.currentType - ) + var condExpr = this.makeIsTrueish( + this.compileExpression(statement.condition, Type.bool), + this.currentType ); - var condKind = evaluateConditionKind(condExpr); + var condKind = this.evaluateCondition(condExpr); // Shortcut if the condition is constant switch (condKind) { case ConditionKind.TRUE: { - if (hasSideEffects(condExpr)) { - return module.block(null, [ - module.drop(condExpr), - this.compileStatement(ifTrue) - ]); - } - return this.compileStatement(ifTrue); + return module.block(null, [ + module.drop(condExpr), + this.compileStatement(ifTrue) + ]); } case ConditionKind.FALSE: { - if (hasSideEffects(condExpr)) { - return ifFalse - ? module.block(null, [ - module.drop(condExpr), - this.compileStatement(ifFalse) - ]) - : module.drop(condExpr); - } return ifFalse - ? this.compileStatement(ifFalse) - : module.nop(); + ? module.block(null, [ + module.drop(condExpr), + this.compileStatement(ifFalse) + ]) + : module.drop(condExpr); } } @@ -3109,16 +3101,17 @@ export class Compiler extends DiagnosticEmitter { // Precompute the condition var condFlow = flow.fork(); this.currentFlow = condFlow; - var condExpr = module.precomputeExpression( - this.makeIsTrueish( - this.compileExpression(statement.condition, Type.bool), - this.currentType - ) + var condExpr = this.makeIsTrueish( + this.compileExpression(statement.condition, Type.bool), + this.currentType ); - var condKind = evaluateConditionKind(condExpr); + var condKind = this.evaluateCondition(condExpr); // Shortcut if condition is always false (body never runs) if (condKind == ConditionKind.FALSE) { + stmts.push( + module.drop(condExpr) + ); this.performAutoreleases(condFlow, stmts); assert(!flow.hasScopedLocals); outerFlow.popBreakLabel(); @@ -9103,21 +9096,29 @@ export class Compiler extends DiagnosticEmitter { ctxType: Type, constraints: Constraints ): ExpressionRef { + var module = this.module; var ifThen = expression.ifThen; var ifElse = expression.ifElse; - var condExpr = this.module.precomputeExpression( - this.makeIsTrueish( - this.compileExpression(expression.condition, Type.bool), - this.currentType - ) + var condExpr = this.makeIsTrueish( + this.compileExpression(expression.condition, Type.bool), + this.currentType ); - // Try to eliminate unnecesssary branches if the condition is constant // FIXME: skips common denominator, inconsistently picking branch type - var condKind = evaluateConditionKind(condExpr); - if (condKind == ConditionKind.TRUE) return this.compileExpression(ifThen, ctxType); - if (condKind == ConditionKind.FALSE) return this.compileExpression(ifElse, ctxType); + var condKind = this.evaluateCondition(condExpr); + if (condKind == ConditionKind.TRUE) { + return module.block(null, [ + module.drop(condExpr), + this.compileExpression(ifThen, ctxType) + ], this.currentType.toNativeType()); + } + if (condKind == ConditionKind.FALSE) { + return module.block(null, [ + module.drop(condExpr), + this.compileExpression(ifElse, ctxType) + ], this.currentType.toNativeType()); + } var inheritedConstraints = constraints & Constraints.WILL_RETAIN; @@ -9143,7 +9144,7 @@ export class Compiler extends DiagnosticEmitter { ifElse.range, ifElseType.toString(), ifThenType.toString() ); this.currentType = ctxType; - return this.module.unreachable(); + return module.unreachable(); } ifThenExpr = this.convertExpression( ifThenExpr, @@ -9190,7 +9191,7 @@ export class Compiler extends DiagnosticEmitter { this.currentFlow = outerFlow; outerFlow.inheritMutual(ifThenFlow, ifElseFlow); - var expr = this.module.if(condExpr, ifThenExpr, ifElseExpr); + var expr = module.if(condExpr, ifThenExpr, ifElseExpr); assert(ifThenAutoreleaseSkipped == ifElseAutoreleaseSkipped); if (ifThenAutoreleaseSkipped) this.skippedAutoreleases.add(expr); return expr; @@ -10028,6 +10029,19 @@ export class Compiler extends DiagnosticEmitter { return supported; } + /** Evaluates a boolean condition, determining whether it is TRUE, FALSE or UNKNOWN. */ + evaluateCondition(expr: ExpressionRef): ConditionKind { + var module = this.module; + var evaled = module.runExpression(expr, ExpressionRunnerFlags.Default); + if (evaled) { + assert(getExpressionId(evaled) == ExpressionId.Const); + return getConstValueI32(evaled) + ? ConditionKind.TRUE + : ConditionKind.FALSE; + } + return ConditionKind.UNKNOWN; + } + // === Specialized code generation ============================================================== /** Makes a constant zero of the specified type. */ @@ -10411,14 +10425,3 @@ function mangleImportName( var mangleImportName_moduleName: string; var mangleImportName_elementName: string; - -/** Evaluates the kind of a boolean condition from its expression. */ -function evaluateConditionKind(expr: ExpressionRef): ConditionKind { - assert(getExpressionType(expr) == NativeType.I32 || getExpressionType(expr) == NativeType.Unreachable); - if (getExpressionId(expr) == ExpressionId.Const) { - return getConstValueI32(expr) - ? ConditionKind.TRUE - : ConditionKind.FALSE; - } - return ConditionKind.UNKNOWN; -} diff --git a/src/glue/binaryen.d.ts b/src/glue/binaryen.d.ts index 132f0e6b60..87724a49b1 100644 --- a/src/glue/binaryen.d.ts +++ b/src/glue/binaryen.d.ts @@ -809,6 +809,17 @@ export declare function _RelooperAddBlockWithSwitch(relooper: BinaryenRelooperRe export declare function _RelooperAddBranchForSwitch(from: BinaryenRelooperBlockRef, to: BinaryenRelooperBlockRef, indexes: usize, numIndexes: BinaryenIndex, code: BinaryenExpressionRef): void; export declare function _RelooperRenderAndDispose(relooper: BinaryenRelooperRef, entry: BinaryenRelooperBlockRef, labelHelper: BinaryenIndex): BinaryenExpressionRef; +type BinaryenExpressionRunnerRef = usize; +type BinaryenExpressionRunnerFlags = u32; + +export declare function _ExpressionRunnerFlagsDefault(): BinaryenExpressionRunnerFlags; +export declare function _ExpressionRunnerFlagsPreserveSideeffects(): BinaryenExpressionRunnerFlags; +export declare function _ExpressionRunnerFlagsTraverseCalls(): BinaryenExpressionRunnerFlags; +export declare function _ExpressionRunnerCreate(module: BinaryenModuleRef, flags: BinaryenExpressionRunnerFlags, maxDepth: BinaryenIndex, maxLoopIterations: BinaryenIndex): BinaryenExpressionRunnerRef; +export declare function _ExpressionRunnerSetLocalValue(runner: BinaryenExpressionRunnerRef, index: BinaryenIndex, value: BinaryenExpressionRef): bool; +export declare function _ExpressionRunnerSetGlobalValue(runner: BinaryenExpressionRunnerRef, name: usize, value: BinaryenExpressionRef): bool; +export declare function _ExpressionRunnerRunAndDispose(runner: BinaryenExpressionRunnerRef, expr: BinaryenExpressionRef): BinaryenExpressionRef; + export declare function _BinaryenGetOptimizeLevel(): i32; export declare function _BinaryenSetOptimizeLevel(level: i32): void; export declare function _BinaryenGetShrinkLevel(): i32; diff --git a/src/module.ts b/src/module.ts index f0337460c1..138170a3e6 100644 --- a/src/module.ts +++ b/src/module.ts @@ -475,6 +475,12 @@ export enum SIMDLoadOp { LoadU32ToU64x2 = 9 /* _BinaryenLoadExtUVec32x2ToVecI64x2 */ } +export enum ExpressionRunnerFlags { + Default = 0 /* _ExpressionRunnerFlagsDefault */, + PreserveSideeffects = 1 /* _ExpressionRunnerFlagsPreserveSideeffects */, + TraverseCalls = 2 /* _ExpressionRunnerFlagsTraverseCalls */ +} + export class MemorySegment { buffer: Uint8Array; @@ -1795,6 +1801,11 @@ export class Module { return 0; } + runExpression(expr: ExpressionRef, flags: ExpressionRunnerFlags, maxDepth: i32 = 50, maxLoopIterations: i32 = 1): ExpressionRef { + var runner = binaryen._ExpressionRunnerCreate(this.ref, flags, maxDepth, maxLoopIterations); + return binaryen._ExpressionRunnerRunAndDispose(runner, expr); + } + // source map generation addDebugInfoFile(name: string): Index { @@ -2159,7 +2170,7 @@ export enum SideEffects { ImplicitTrap = 256 /* _BinaryenSideEffectImplicitTrap */, IsAtomic = 512 /* _BinaryenSideEffectIsAtomic */, Throws = 1024 /* _BinaryenSideEffectThrows */, - Any = 2047 /* _BinaryenSideEffectAny */, + Any = 2047 /* _BinaryenSideEffectAny */ } export function getSideEffects(expr: ExpressionRef, features: FeatureFlags = FeatureFlags.All): SideEffects { diff --git a/tests/compiler/assert-nonnull.untouched.wat b/tests/compiler/assert-nonnull.untouched.wat index 2eb1b383cc..783df6b6c0 100644 --- a/tests/compiler/assert-nonnull.untouched.wat +++ b/tests/compiler/assert-nonnull.untouched.wat @@ -131,6 +131,11 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -197,6 +202,11 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop local.get $2 ) (func $assert-nonnull/testElem (param $0 i32) (result i32) diff --git a/tests/compiler/assert.untouched.wat b/tests/compiler/assert.untouched.wat index bffe105a3d..5011ccb714 100644 --- a/tests/compiler/assert.untouched.wat +++ b/tests/compiler/assert.untouched.wat @@ -1,5 +1,15 @@ (module + (type $none_=>_none (func)) (memory $0 0) (table $0 1 funcref) (export "memory" (memory $0)) + (start $~start) + (func $start:assert + i32.const 1 + i32.eqz + drop + ) + (func $~start + call $start:assert + ) ) diff --git a/tests/compiler/binary.untouched.wat b/tests/compiler/binary.untouched.wat index 3a4087eff2..08706bb37e 100644 --- a/tests/compiler/binary.untouched.wat +++ b/tests/compiler/binary.untouched.wat @@ -114,6 +114,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/pow_lut|inlined.0 (result f64) local.get $0 local.set $3 @@ -138,7 +142,9 @@ local.get $7 i64.const 1 i64.sub - i64.const 2046 + i64.const 2047 + i64.const 1 + i64.sub i64.ge_u if (result i32) i32.const 1 @@ -148,7 +154,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u end if @@ -159,7 +167,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $6 @@ -235,7 +245,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $3 @@ -264,14 +276,18 @@ br $~lib/util/math/checkint|inlined.0 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 br $~lib/util/math/checkint|inlined.0 end i64.const 1 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add local.get $11 i64.sub i64.shl @@ -345,7 +361,9 @@ br $~lib/util/math/checkint|inlined.1 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 @@ -416,7 +434,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u if local.get $5 @@ -1302,6 +1322,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/powf_lut|inlined.0 (result f32) local.get $0 local.set $3 @@ -1320,7 +1344,9 @@ local.get $5 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u local.get $6 local.set $8 @@ -1329,7 +1355,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u i32.const 0 i32.ne @@ -1357,7 +1387,9 @@ local.get $5 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u if (result i32) i32.const 1 @@ -1365,7 +1397,9 @@ local.get $6 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u end if @@ -1377,7 +1411,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.eq if f32.const nan:0x400000 @@ -1386,7 +1422,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.lt_u local.get $6 i32.const 31 @@ -1409,7 +1447,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u if local.get $3 @@ -1437,14 +1479,18 @@ br $~lib/util/math/checkintf|inlined.0 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 br $~lib/util/math/checkintf|inlined.0 end i32.const 1 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add local.get $10 i32.sub i32.shl @@ -1510,7 +1556,9 @@ br $~lib/util/math/checkintf|inlined.1 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 diff --git a/tests/compiler/builtins.untouched.wat b/tests/compiler/builtins.untouched.wat index 6198203d17..881e5cc654 100644 --- a/tests/compiler/builtins.untouched.wat +++ b/tests/compiler/builtins.untouched.wat @@ -135,6 +135,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u diff --git a/tests/compiler/call-super.untouched.wat b/tests/compiler/call-super.untouched.wat index d328c74c1b..47aaa05b28 100644 --- a/tests/compiler/call-super.untouched.wat +++ b/tests/compiler/call-super.untouched.wat @@ -109,6 +109,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/class.untouched.wat b/tests/compiler/class.untouched.wat index 7629cefc33..a919c7447b 100644 --- a/tests/compiler/class.untouched.wat +++ b/tests/compiler/class.untouched.wat @@ -220,6 +220,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -247,6 +249,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -447,7 +453,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 diff --git a/tests/compiler/constructor.untouched.wat b/tests/compiler/constructor.untouched.wat index 6165efdd0c..71ba7e00db 100644 --- a/tests/compiler/constructor.untouched.wat +++ b/tests/compiler/constructor.untouched.wat @@ -117,6 +117,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/do.untouched.wat b/tests/compiler/do.untouched.wat index 6ac3f96e18..e85e339352 100644 --- a/tests/compiler/do.untouched.wat +++ b/tests/compiler/do.untouched.wat @@ -263,6 +263,8 @@ local.get $0 return end + i32.const 1 + drop br $do-continue|0 end unreachable @@ -276,6 +278,8 @@ i32.const 1 i32.add local.set $0 + i32.const 0 + drop end local.get $0 i32.const 1 @@ -450,6 +454,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -468,6 +474,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -520,6 +528,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -659,6 +669,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -672,6 +684,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -765,6 +779,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -821,6 +837,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -840,6 +858,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -894,6 +914,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -1004,6 +1026,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -1041,6 +1065,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -1072,6 +1098,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -1092,7 +1120,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1286,6 +1318,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1387,6 +1421,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1459,6 +1495,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1517,6 +1555,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1601,6 +1641,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1623,7 +1665,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1692,6 +1736,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1715,9 +1761,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1734,6 +1784,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1753,6 +1805,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1765,6 +1819,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1796,6 +1852,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1836,8 +1894,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2206,6 +2268,8 @@ call $start:do ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -2221,6 +2285,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -2234,8 +2300,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2259,6 +2329,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -2276,6 +2350,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -2288,6 +2364,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -2308,6 +2386,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/exports.untouched.wat b/tests/compiler/exports.untouched.wat index c8c364dc88..413f87254b 100644 --- a/tests/compiler/exports.untouched.wat +++ b/tests/compiler/exports.untouched.wat @@ -163,6 +163,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/extends-baseaggregate.untouched.wat b/tests/compiler/extends-baseaggregate.untouched.wat index c49acc99ab..c7faf8da37 100644 --- a/tests/compiler/extends-baseaggregate.untouched.wat +++ b/tests/compiler/extends-baseaggregate.untouched.wat @@ -51,6 +51,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -69,6 +71,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -121,6 +125,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -260,6 +266,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -273,6 +281,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -366,6 +376,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -422,6 +434,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -441,6 +455,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -495,6 +511,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -605,6 +623,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -642,6 +662,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -673,6 +695,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -693,7 +717,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -887,6 +915,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -988,6 +1018,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1060,6 +1092,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1118,6 +1152,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1202,6 +1238,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1224,7 +1262,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1293,6 +1333,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1316,9 +1358,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1335,6 +1381,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1354,6 +1402,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1366,6 +1416,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1397,6 +1449,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1435,6 +1489,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2587,6 +2645,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2612,6 +2674,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2707,6 +2773,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2801,6 +2871,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/tlsf/reallocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2817,7 +2889,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -2912,6 +2986,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 0 + drop local.get $0 local.get $1 call $~lib/rt/tlsf/freeBlock @@ -2943,6 +3019,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -3227,6 +3307,8 @@ local.get $3 i32.const 2 call $~lib/array/ensureSize + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $2 @@ -3387,6 +3469,8 @@ (local $4 i32) (local $5 i32) (local $6 i32) + i32.const 0 + drop global.get $~lib/rt/pure/ROOTS local.set $0 local.get $0 @@ -3581,12 +3665,16 @@ i32.const 0 call $~lib/rt/tlsf/__alloc local.set $5 + i32.const 0 + drop local.get $5 local.get $0 local.get $1 call $~lib/memory/memory.copy local.get $0 if + i32.const 0 + drop local.get $0 call $~lib/rt/tlsf/__free end @@ -3631,6 +3719,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -3654,6 +3746,8 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 0 + drop local.get $1 i32.const -2147483648 i32.and @@ -3672,6 +3766,8 @@ i32.store offset=4 end else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -3684,6 +3780,8 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + drop local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo @@ -3732,6 +3830,8 @@ if return end + i32.const 0 + drop local.get $0 i32.const 16 i32.sub @@ -3771,6 +3871,8 @@ call $~lib/rt/pure/decrement br $break|0 end + i32.const 1 + drop local.get $2 i32.load offset=4 i32.const 268435455 @@ -3841,6 +3943,8 @@ call $~lib/rt/pure/collectWhite br $break|0 end + i32.const 1 + drop i32.const 0 i32.eqz if @@ -3858,6 +3962,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -3901,6 +4007,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 diff --git a/tests/compiler/extends-recursive.untouched.wat b/tests/compiler/extends-recursive.untouched.wat index d339b0a852..06d2040bd3 100644 --- a/tests/compiler/extends-recursive.untouched.wat +++ b/tests/compiler/extends-recursive.untouched.wat @@ -111,6 +111,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/features/simd.untouched.wat b/tests/compiler/features/simd.untouched.wat index 3da8c034f5..92c19496d4 100644 --- a/tests/compiler/features/simd.untouched.wat +++ b/tests/compiler/features/simd.untouched.wat @@ -115,6 +115,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -152,6 +154,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 @@ -2282,6 +2286,8 @@ global.set $~lib/rt/stub/startOffset global.get $~lib/rt/stub/startOffset global.set $~lib/rt/stub/offset + i32.const 1 + drop call $features/simd/test_v128 call $features/simd/test_i8x16 call $features/simd/test_i16x8 diff --git a/tests/compiler/features/threads.untouched.wat b/tests/compiler/features/threads.untouched.wat index 26e079d034..90f6187e5a 100644 --- a/tests/compiler/features/threads.untouched.wat +++ b/tests/compiler/features/threads.untouched.wat @@ -535,6 +535,8 @@ drop ) (func $start:features/threads + i32.const 1 + drop call $features/threads/testAtomic call $features/threads/testAtomicAsm ) diff --git a/tests/compiler/for.untouched.wat b/tests/compiler/for.untouched.wat index c98250b8b0..d04be7bbfe 100644 --- a/tests/compiler/for.untouched.wat +++ b/tests/compiler/for.untouched.wat @@ -250,6 +250,8 @@ global.set $for/ran ) (func $for/testAlwaysFalse + i32.const 0 + drop i32.const 1 global.set $for/ran ) @@ -465,6 +467,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -483,6 +487,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -535,6 +541,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -674,6 +682,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -687,6 +697,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -780,6 +792,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -836,6 +850,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -855,6 +871,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -909,6 +927,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -1019,6 +1039,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -1056,6 +1078,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -1087,6 +1111,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -1107,7 +1133,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1301,6 +1331,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1402,6 +1434,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1474,6 +1508,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1532,6 +1568,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1616,6 +1654,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1638,7 +1678,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1707,6 +1749,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1730,9 +1774,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1749,6 +1797,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1768,6 +1818,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1780,6 +1832,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1811,6 +1865,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1851,8 +1907,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2253,6 +2313,8 @@ call $start:for ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -2268,6 +2330,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -2281,8 +2345,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2306,6 +2374,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -2323,6 +2395,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -2335,6 +2409,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -2355,6 +2431,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/getter-call.untouched.wat b/tests/compiler/getter-call.untouched.wat index 7757d0fdc9..db459a3102 100644 --- a/tests/compiler/getter-call.untouched.wat +++ b/tests/compiler/getter-call.untouched.wat @@ -111,6 +111,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/implicit-getter-setter.untouched.wat b/tests/compiler/implicit-getter-setter.untouched.wat index 3c51790f0d..d3cf7d7bbf 100644 --- a/tests/compiler/implicit-getter-setter.untouched.wat +++ b/tests/compiler/implicit-getter-setter.untouched.wat @@ -55,6 +55,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -73,6 +75,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -125,6 +129,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -264,6 +270,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -277,6 +285,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -370,6 +380,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -426,6 +438,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -445,6 +459,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -499,6 +515,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -609,6 +627,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -646,6 +666,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -677,6 +699,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -697,7 +721,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -891,6 +919,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -992,6 +1022,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1064,6 +1096,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1122,6 +1156,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1206,6 +1242,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1228,7 +1266,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1297,6 +1337,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1320,9 +1362,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1339,6 +1385,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1358,6 +1406,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1370,6 +1420,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1401,6 +1453,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1441,8 +1495,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1550,6 +1608,8 @@ i32.store ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1565,6 +1625,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1578,8 +1640,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1603,6 +1669,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1620,6 +1690,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1632,6 +1704,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1652,6 +1726,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/infer-array.untouched.wat b/tests/compiler/infer-array.untouched.wat index 2952d539b4..d22633e775 100644 --- a/tests/compiler/infer-array.untouched.wat +++ b/tests/compiler/infer-array.untouched.wat @@ -131,6 +131,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -1185,6 +1187,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -1210,6 +1216,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1305,6 +1315,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1463,6 +1477,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/rt/stub/__release (param $0 i32) @@ -1495,6 +1511,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) @@ -1524,6 +1542,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result f32) @@ -1553,6 +1573,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $infer-array/Ref#constructor (param $0 i32) (result i32) @@ -1595,6 +1617,11 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop local.get $2 ) (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (param $0 i32) (param $1 i32) (result i32) @@ -1625,6 +1652,11 @@ local.get $1 call $~lib/array/Array<~lib/string/String | null>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop local.get $2 ) (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) @@ -1654,6 +1686,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (param $0 i32) (param $1 i32) (result i32) @@ -1684,6 +1718,11 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if diff --git a/tests/compiler/inlining.untouched.wat b/tests/compiler/inlining.untouched.wat index 1d3f358673..12779850f9 100644 --- a/tests/compiler/inlining.untouched.wat +++ b/tests/compiler/inlining.untouched.wat @@ -376,6 +376,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/instanceof-class.untouched.wat b/tests/compiler/instanceof-class.untouched.wat index d053a6b88f..b349ca385b 100644 --- a/tests/compiler/instanceof-class.untouched.wat +++ b/tests/compiler/instanceof-class.untouched.wat @@ -113,6 +113,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/instanceof.untouched.wat b/tests/compiler/instanceof.untouched.wat index 35a785e0fa..7fb95bd95d 100644 --- a/tests/compiler/instanceof.untouched.wat +++ b/tests/compiler/instanceof.untouched.wat @@ -18,20 +18,56 @@ (export "memory" (memory $0)) (start $~start) (func $instanceof/isI32 (param $0 i32) (result i32) + local.get $0 + drop i32.const 1 - return + if + i32.const 1 + return + else + i32.const 0 + return + end + unreachable ) (func $instanceof/isI32 (param $0 f64) (result i32) + local.get $0 + drop i32.const 0 - return + if + i32.const 1 + return + else + i32.const 0 + return + end + unreachable ) (func $instanceof/isI32 (param $0 i32) (result i32) + local.get $0 + drop i32.const 0 - return + if + i32.const 1 + return + else + i32.const 0 + return + end + unreachable ) (func $instanceof/isI32 (param $0 i32) (result i32) + local.get $0 + drop i32.const 0 - return + if + i32.const 1 + return + else + i32.const 0 + return + end + unreachable ) (func $~lib/rt/stub/__retain (param $0 i32) (result i32) local.get $0 diff --git a/tests/compiler/issues/1095.untouched.wat b/tests/compiler/issues/1095.untouched.wat index e6dc651dce..cbf398b847 100644 --- a/tests/compiler/issues/1095.untouched.wat +++ b/tests/compiler/issues/1095.untouched.wat @@ -41,6 +41,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -59,6 +61,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -111,6 +115,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -250,6 +256,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -263,6 +271,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -356,6 +366,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -412,6 +424,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -431,6 +445,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -485,6 +501,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -595,6 +613,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -632,6 +652,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -663,6 +685,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -683,7 +707,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -877,6 +905,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -978,6 +1008,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1050,6 +1082,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1108,6 +1142,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1192,6 +1228,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1214,7 +1252,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1283,6 +1323,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1306,9 +1348,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1325,6 +1371,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1344,6 +1392,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1356,6 +1406,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1387,6 +1439,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1427,8 +1481,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1534,6 +1592,8 @@ call $start:issues/1095 ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1549,6 +1609,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1562,8 +1624,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1587,6 +1653,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1604,6 +1674,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1616,6 +1688,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1636,6 +1710,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/managed-cast.untouched.wat b/tests/compiler/managed-cast.untouched.wat index eba2e0cb29..5c8385f30c 100644 --- a/tests/compiler/managed-cast.untouched.wat +++ b/tests/compiler/managed-cast.untouched.wat @@ -43,6 +43,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -61,6 +63,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -113,6 +117,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -252,6 +258,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -265,6 +273,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -358,6 +368,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -414,6 +426,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -433,6 +447,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -487,6 +503,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -597,6 +615,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -634,6 +654,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -665,6 +687,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -685,7 +709,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -879,6 +907,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -980,6 +1010,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1052,6 +1084,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1110,6 +1144,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1194,6 +1230,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1216,7 +1254,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1285,6 +1325,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1308,9 +1350,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1327,6 +1373,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1346,6 +1394,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1358,6 +1408,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1389,6 +1441,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1429,8 +1483,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1798,6 +1856,8 @@ call $start:managed-cast ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1813,6 +1873,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1826,8 +1888,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1851,6 +1917,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1868,6 +1938,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1880,6 +1952,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1900,6 +1974,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/mandelbrot.untouched.wat b/tests/compiler/mandelbrot.untouched.wat index 52d4cd0de4..40054362be 100644 --- a/tests/compiler/mandelbrot.untouched.wat +++ b/tests/compiler/mandelbrot.untouched.wat @@ -30,6 +30,10 @@ (local $16 i64) (local $17 f64) (local $18 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -39,7 +43,9 @@ local.get $2 i64.const 4606619468846596096 i64.sub - i64.const 854320534781952 + i64.const 4607473789381378048 + i64.const 4606619468846596096 + i64.sub i64.lt_u if local.get $1 @@ -149,7 +155,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 @@ -166,7 +174,8 @@ br $~lib/util/math/log_lut|inlined.0 end local.get $2 - i64.const 9218868437227405312 + f64.const inf + i64.reinterpret_f64 i64.eq if local.get $1 @@ -353,6 +362,10 @@ (local $21 f64) (local $22 f64) (local $23 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -362,7 +375,9 @@ local.get $2 i64.const 4606800540372828160 i64.sub - i64.const 581272283906048 + i64.const 4607381812656734208 + i64.const 4606800540372828160 + i64.sub i64.lt_u if local.get $1 @@ -466,7 +481,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 diff --git a/tests/compiler/new.untouched.wat b/tests/compiler/new.untouched.wat index 826409f739..a43342cf59 100644 --- a/tests/compiler/new.untouched.wat +++ b/tests/compiler/new.untouched.wat @@ -109,6 +109,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index 7422696bd1..7f9b8d1a60 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -207,6 +207,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -402,6 +404,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -416,6 +422,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -460,6 +475,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -2176,6 +2195,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2201,6 +2224,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2296,6 +2323,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2596,6 +2627,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -2668,6 +2703,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -3253,6 +3292,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 diff --git a/tests/compiler/optional-typeparameters.untouched.wat b/tests/compiler/optional-typeparameters.untouched.wat index 7dc0c13a39..0e4f058695 100644 --- a/tests/compiler/optional-typeparameters.untouched.wat +++ b/tests/compiler/optional-typeparameters.untouched.wat @@ -116,6 +116,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/possibly-null.untouched.wat b/tests/compiler/possibly-null.untouched.wat index 6d12205d84..1a3b0079da 100644 --- a/tests/compiler/possibly-null.untouched.wat +++ b/tests/compiler/possibly-null.untouched.wat @@ -35,7 +35,8 @@ local.set $0 local.get $0 if - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -51,7 +52,8 @@ call $~lib/rt/stub/__release return else - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -67,6 +69,8 @@ call $~lib/rt/stub/__release return end + i32.const 0 + drop local.get $0 call $~lib/rt/stub/__release ) @@ -78,7 +82,8 @@ i32.const 0 i32.ne if - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -95,7 +100,8 @@ call $~lib/rt/stub/__release return else - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -112,6 +118,8 @@ call $~lib/rt/stub/__release return end + i32.const 0 + drop local.get $0 call $~lib/rt/stub/__release ) @@ -124,7 +132,8 @@ i32.eq i32.eqz if - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -142,7 +151,8 @@ call $~lib/rt/stub/__release return else - nop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -160,6 +170,8 @@ call $~lib/rt/stub/__release return end + i32.const 0 + drop local.get $0 call $~lib/rt/stub/__release ) @@ -175,6 +187,8 @@ local.set $1 local.get $1 if + i32.const 0 + drop i32.const 0 local.tee $2 local.get $0 @@ -189,6 +203,9 @@ end local.get $2 local.set $0 + i32.const 1 + i32.eqz + drop br $while-continue|0 end end @@ -210,6 +227,8 @@ local.set $2 local.get $2 if + i32.const 0 + drop local.get $1 local.tee $3 local.get $0 @@ -224,6 +243,9 @@ end local.get $3 local.set $0 + i32.const 1 + i32.eqz + drop br $while-continue|0 end end @@ -247,6 +269,8 @@ local.set $2 local.get $2 if + i32.const 0 + drop local.get $1 if local.get $1 @@ -263,6 +287,8 @@ end local.get $3 local.set $0 + i32.const 0 + drop end br $while-continue|0 end @@ -339,9 +365,17 @@ i32.const 0 end if - nop + i32.const 0 + drop + i32.const 0 + drop else - nop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.eqz + drop end local.get $0 call $~lib/rt/stub/__release @@ -364,9 +398,17 @@ i32.eqz end if - nop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.eqz + drop else - nop + i32.const 0 + drop + i32.const 0 + drop end local.get $0 call $~lib/rt/stub/__release @@ -396,6 +438,8 @@ end local.get $2 local.set $0 + i32.const 0 + drop local.get $0 call $~lib/rt/stub/__release local.get $1 diff --git a/tests/compiler/rc/global-init.untouched.wat b/tests/compiler/rc/global-init.untouched.wat index 7ca45c6dda..88da119b1c 100644 --- a/tests/compiler/rc/global-init.untouched.wat +++ b/tests/compiler/rc/global-init.untouched.wat @@ -51,8 +51,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -144,6 +148,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -162,6 +168,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -214,6 +222,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -353,6 +363,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -366,6 +378,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -459,6 +473,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -515,6 +531,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -534,6 +552,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -588,6 +608,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -703,6 +725,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -716,8 +740,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -741,6 +769,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -758,6 +790,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -770,6 +804,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -790,6 +826,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/local-init.untouched.wat b/tests/compiler/rc/local-init.untouched.wat index 81945d73da..7485847a9d 100644 --- a/tests/compiler/rc/local-init.untouched.wat +++ b/tests/compiler/rc/local-init.untouched.wat @@ -54,6 +54,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -72,6 +74,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -124,6 +128,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -263,6 +269,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -276,6 +284,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -369,6 +379,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -425,6 +437,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -444,6 +458,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -498,6 +514,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -608,6 +626,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -645,6 +665,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -676,6 +698,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -696,7 +720,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -890,6 +918,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -991,6 +1021,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1063,6 +1095,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1121,6 +1155,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1205,6 +1241,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1227,7 +1265,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1296,6 +1336,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1319,9 +1361,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1338,6 +1384,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1357,6 +1405,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1369,6 +1419,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1400,6 +1452,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1440,8 +1494,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1513,6 +1571,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1526,8 +1586,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1551,6 +1615,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1568,6 +1636,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1580,6 +1650,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1594,6 +1666,8 @@ end ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) @@ -1603,6 +1677,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/logical-and-mismatch.untouched.wat b/tests/compiler/rc/logical-and-mismatch.untouched.wat index f85f7d35e9..e104bd0e21 100644 --- a/tests/compiler/rc/logical-and-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-and-mismatch.untouched.wat @@ -40,6 +40,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -58,6 +60,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -110,6 +114,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -249,6 +255,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -262,6 +270,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -355,6 +365,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -411,6 +423,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -430,6 +444,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -484,6 +500,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -594,6 +612,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -631,6 +651,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -662,6 +684,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -682,7 +706,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -876,6 +904,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -977,6 +1007,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1049,6 +1081,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1107,6 +1141,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1191,6 +1227,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1213,7 +1251,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1282,6 +1322,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1305,9 +1347,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1324,6 +1370,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1343,6 +1391,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1355,6 +1405,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1386,6 +1438,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1426,8 +1480,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1541,6 +1599,8 @@ call $start:rc/logical-and-mismatch ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1556,6 +1616,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1569,8 +1631,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1594,6 +1660,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1611,6 +1681,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1623,6 +1695,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1643,6 +1717,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/logical-or-mismatch.untouched.wat b/tests/compiler/rc/logical-or-mismatch.untouched.wat index cf6acbd389..884e39ef39 100644 --- a/tests/compiler/rc/logical-or-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-or-mismatch.untouched.wat @@ -40,6 +40,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -58,6 +60,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -110,6 +114,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -249,6 +255,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -262,6 +270,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -355,6 +365,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -411,6 +423,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -430,6 +444,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -484,6 +500,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -594,6 +612,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -631,6 +651,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -662,6 +684,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -682,7 +706,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -876,6 +904,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -977,6 +1007,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1049,6 +1081,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1107,6 +1141,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1191,6 +1227,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1213,7 +1251,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1282,6 +1322,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1305,9 +1347,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1324,6 +1370,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1343,6 +1391,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1355,6 +1405,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1386,6 +1438,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1426,8 +1480,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1541,6 +1599,8 @@ call $start:rc/logical-or-mismatch ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1556,6 +1616,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1569,8 +1631,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1594,6 +1660,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1611,6 +1681,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1623,6 +1695,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1643,6 +1717,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/optimize.untouched.wat b/tests/compiler/rc/optimize.untouched.wat index f4034abe10..b7dfe0caba 100644 --- a/tests/compiler/rc/optimize.untouched.wat +++ b/tests/compiler/rc/optimize.untouched.wat @@ -92,8 +92,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -135,6 +139,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -153,6 +159,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -205,6 +213,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -344,6 +354,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -357,6 +369,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -450,6 +464,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -506,6 +522,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -525,6 +543,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -579,6 +599,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -689,6 +711,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -726,6 +750,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -757,6 +783,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -777,7 +805,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -971,6 +1003,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1072,6 +1106,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1144,6 +1180,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1202,6 +1240,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1286,6 +1326,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1308,7 +1350,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1377,6 +1421,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1400,9 +1446,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1419,6 +1469,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1438,6 +1490,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1450,6 +1504,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1481,6 +1537,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1793,6 +1851,8 @@ call $~lib/rt/pure/__release ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1808,6 +1868,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1821,8 +1883,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1846,6 +1912,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1863,6 +1933,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1875,6 +1947,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1895,6 +1969,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/rereturn.untouched.wat b/tests/compiler/rc/rereturn.untouched.wat index f5a64e18e3..6316e03c04 100644 --- a/tests/compiler/rc/rereturn.untouched.wat +++ b/tests/compiler/rc/rereturn.untouched.wat @@ -42,6 +42,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -60,6 +62,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -112,6 +116,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -251,6 +257,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -264,6 +272,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -357,6 +367,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -413,6 +425,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -432,6 +446,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -486,6 +502,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -596,6 +614,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -633,6 +653,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -664,6 +686,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -684,7 +708,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -878,6 +906,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -979,6 +1009,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1051,6 +1083,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1109,6 +1143,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1193,6 +1229,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1215,7 +1253,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1284,6 +1324,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1307,9 +1349,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1326,6 +1372,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1345,6 +1393,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1357,6 +1407,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1388,6 +1440,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1426,6 +1480,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1491,6 +1549,8 @@ call $start:rc/rereturn ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1506,6 +1566,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/pure/decrement (param $0 i32) (local $1 i32) @@ -1517,6 +1579,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1540,6 +1606,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1557,6 +1627,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1569,6 +1641,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1589,6 +1663,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rc/ternary-mismatch.untouched.wat b/tests/compiler/rc/ternary-mismatch.untouched.wat index 32cce7b330..2a9c771b6b 100644 --- a/tests/compiler/rc/ternary-mismatch.untouched.wat +++ b/tests/compiler/rc/ternary-mismatch.untouched.wat @@ -42,6 +42,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -60,6 +62,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -112,6 +116,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -251,6 +257,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -264,6 +272,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -357,6 +367,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -413,6 +425,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -432,6 +446,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -486,6 +502,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -596,6 +614,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -633,6 +653,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -664,6 +686,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -684,7 +708,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -878,6 +906,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -979,6 +1009,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1051,6 +1083,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1109,6 +1143,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1193,6 +1229,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1215,7 +1253,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1284,6 +1324,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1307,9 +1349,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1326,6 +1372,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1345,6 +1393,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1357,6 +1407,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1388,6 +1440,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1428,8 +1482,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1525,6 +1583,8 @@ call $start:rc/ternary-mismatch ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1540,6 +1600,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1553,8 +1615,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1578,6 +1644,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1595,6 +1665,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1607,6 +1679,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1627,6 +1701,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/resolve-access.untouched.wat b/tests/compiler/resolve-access.untouched.wat index 96d5299d97..4eaa509728 100644 --- a/tests/compiler/resolve-access.untouched.wat +++ b/tests/compiler/resolve-access.untouched.wat @@ -125,6 +125,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -1179,6 +1181,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -1204,6 +1210,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1299,6 +1309,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1457,6 +1471,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) @@ -1853,7 +1869,8 @@ return end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -1874,6 +1891,10 @@ local.set $5 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -1894,6 +1915,10 @@ local.set $7 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $7 local.get $4 @@ -1903,6 +1928,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa64 return @@ -1997,6 +2031,10 @@ local.set $4 local.get $1 local.set $3 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $4 local.get $3 @@ -2005,6 +2043,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa32 return diff --git a/tests/compiler/resolve-binary.untouched.wat b/tests/compiler/resolve-binary.untouched.wat index 97cf2be31a..b745006185 100644 --- a/tests/compiler/resolve-binary.untouched.wat +++ b/tests/compiler/resolve-binary.untouched.wat @@ -115,6 +115,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -436,6 +440,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -628,6 +634,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -642,6 +652,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -747,6 +766,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/pow_lut|inlined.0 (result f64) local.get $0 local.set $3 @@ -771,7 +794,9 @@ local.get $7 i64.const 1 i64.sub - i64.const 2046 + i64.const 2047 + i64.const 1 + i64.sub i64.ge_u if (result i32) i32.const 1 @@ -781,7 +806,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u end if @@ -792,7 +819,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $6 @@ -868,7 +897,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $3 @@ -897,14 +928,18 @@ br $~lib/util/math/checkint|inlined.0 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 br $~lib/util/math/checkint|inlined.0 end i64.const 1 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add local.get $11 i64.sub i64.shl @@ -978,7 +1013,9 @@ br $~lib/util/math/checkint|inlined.1 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 @@ -1049,7 +1086,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u if local.get $5 @@ -3156,6 +3195,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3181,6 +3224,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3276,6 +3323,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3576,6 +3627,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -3648,6 +3703,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -4233,6 +4292,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 diff --git a/tests/compiler/resolve-elementaccess.untouched.wat b/tests/compiler/resolve-elementaccess.untouched.wat index 9b5f9333d8..140ce1ca20 100644 --- a/tests/compiler/resolve-elementaccess.untouched.wat +++ b/tests/compiler/resolve-elementaccess.untouched.wat @@ -148,6 +148,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -175,6 +177,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -2110,6 +2116,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2135,6 +2145,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2230,6 +2244,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2670,6 +2688,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -2742,6 +2764,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -3335,6 +3361,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 @@ -3450,6 +3478,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -3718,6 +3750,10 @@ local.set $4 local.get $1 local.set $3 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $4 local.get $3 @@ -3726,6 +3762,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 255 i32.and diff --git a/tests/compiler/resolve-function-expression.untouched.wat b/tests/compiler/resolve-function-expression.untouched.wat index 561614854d..d4bcc24ebf 100644 --- a/tests/compiler/resolve-function-expression.untouched.wat +++ b/tests/compiler/resolve-function-expression.untouched.wat @@ -192,6 +192,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -387,6 +389,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -401,6 +407,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -445,6 +460,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u diff --git a/tests/compiler/resolve-nested.untouched.wat b/tests/compiler/resolve-nested.untouched.wat index bc3072f2cb..c7af958501 100644 --- a/tests/compiler/resolve-nested.untouched.wat +++ b/tests/compiler/resolve-nested.untouched.wat @@ -132,6 +132,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/resolve-new.untouched.wat b/tests/compiler/resolve-new.untouched.wat index 4918e52d89..61f82a9dd5 100644 --- a/tests/compiler/resolve-new.untouched.wat +++ b/tests/compiler/resolve-new.untouched.wat @@ -107,6 +107,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/resolve-propertyaccess.untouched.wat b/tests/compiler/resolve-propertyaccess.untouched.wat index 1ea6bd210b..fa1230aec1 100644 --- a/tests/compiler/resolve-propertyaccess.untouched.wat +++ b/tests/compiler/resolve-propertyaccess.untouched.wat @@ -188,6 +188,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -383,6 +385,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -397,6 +403,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -441,6 +456,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u diff --git a/tests/compiler/resolve-ternary.untouched.wat b/tests/compiler/resolve-ternary.untouched.wat index 28ba4e70d0..696beb48d2 100644 --- a/tests/compiler/resolve-ternary.untouched.wat +++ b/tests/compiler/resolve-ternary.untouched.wat @@ -73,6 +73,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -91,6 +93,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -143,6 +147,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -282,6 +288,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -295,6 +303,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -388,6 +398,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -444,6 +456,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -463,6 +477,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -517,6 +533,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -627,6 +645,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -664,6 +684,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -695,6 +717,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -715,7 +739,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -909,6 +937,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1010,6 +1040,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1082,6 +1114,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1140,6 +1174,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1224,6 +1260,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1246,7 +1284,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1315,6 +1355,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1338,9 +1380,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1357,6 +1403,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1376,6 +1424,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1388,6 +1438,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1419,6 +1471,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1457,6 +1511,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1731,6 +1789,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -1745,6 +1807,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -1786,6 +1857,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -3502,6 +3577,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3527,6 +3606,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3622,6 +3705,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3922,6 +4009,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -3994,6 +4085,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -4612,6 +4707,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/tlsf/__free (param $0 i32) call $~lib/rt/tlsf/maybeInitialize @@ -4822,6 +4919,8 @@ call $start:resolve-ternary ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/decrement (param $0 i32) @@ -4834,6 +4933,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -4857,6 +4960,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -4874,6 +4981,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -4886,6 +4995,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -4906,6 +5017,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -4924,13 +5039,16 @@ call $~lib/rt/pure/decrement ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/resolve-unary.untouched.wat b/tests/compiler/resolve-unary.untouched.wat index 0983333051..0a8d0a0509 100644 --- a/tests/compiler/resolve-unary.untouched.wat +++ b/tests/compiler/resolve-unary.untouched.wat @@ -187,6 +187,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -382,6 +384,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -396,6 +402,15 @@ call $~lib/rt/stub/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -440,6 +455,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u diff --git a/tests/compiler/retain-i32.untouched.wat b/tests/compiler/retain-i32.untouched.wat index dfd4723e90..276e62648f 100644 --- a/tests/compiler/retain-i32.untouched.wat +++ b/tests/compiler/retain-i32.untouched.wat @@ -412,7 +412,7 @@ local.set $0 loop $for-loop|0 local.get $0 - i32.const 255 + global.get $~lib/builtins/u8.MAX_VALUE i32.le_s local.set $1 local.get $1 diff --git a/tests/compiler/retain-release-sanity.untouched.wat b/tests/compiler/retain-release-sanity.untouched.wat index de1f72aa5e..39bb41cec8 100644 --- a/tests/compiler/retain-release-sanity.untouched.wat +++ b/tests/compiler/retain-release-sanity.untouched.wat @@ -56,6 +56,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -74,6 +76,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -126,6 +130,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -265,6 +271,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -278,6 +286,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -371,6 +381,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -427,6 +439,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -446,6 +460,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -500,6 +516,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -610,6 +628,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -647,6 +667,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -678,6 +700,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -698,7 +722,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -892,6 +920,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -993,6 +1023,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1065,6 +1097,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1123,6 +1157,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1207,6 +1243,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1229,7 +1267,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1298,6 +1338,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1321,9 +1363,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1340,6 +1386,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1359,6 +1407,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1371,6 +1421,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1402,6 +1454,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1430,6 +1484,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1651,8 +1709,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1698,7 +1760,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -2858,6 +2922,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2883,6 +2951,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2978,6 +3050,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3072,6 +3148,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3090,7 +3168,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -3185,6 +3265,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -3279,6 +3361,8 @@ local.get $3 i32.const 2 call $~lib/array/ensureSize + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $2 @@ -3332,7 +3416,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -3410,7 +3496,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -3499,6 +3587,8 @@ local.get $3 i32.const 2 call $~lib/array/ensureSize + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $2 @@ -3991,6 +4081,8 @@ (local $4 i32) (local $5 i32) (local $6 i32) + i32.const 0 + drop global.get $~lib/rt/pure/ROOTS local.set $0 local.get $0 @@ -4185,6 +4277,8 @@ i32.const 0 call $~lib/rt/tlsf/__alloc local.set $5 + i32.const 1 + drop local.get $5 i32.const 16 i32.sub @@ -4195,6 +4289,8 @@ call $~lib/memory/memory.copy local.get $0 if + i32.const 1 + drop local.get $0 i32.const 16 i32.sub @@ -4243,8 +4339,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -4268,6 +4368,8 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 0 + drop local.get $1 i32.const -2147483648 i32.and @@ -4286,6 +4388,8 @@ i32.store offset=4 end else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -4298,6 +4402,8 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + drop local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo @@ -4346,6 +4452,8 @@ if return end + i32.const 0 + drop local.get $0 i32.const 16 i32.sub @@ -4385,6 +4493,8 @@ call $~lib/rt/pure/decrement br $break|0 end + i32.const 1 + drop local.get $2 i32.load offset=4 i32.const 268435455 @@ -4455,6 +4565,8 @@ call $~lib/rt/pure/collectWhite br $break|0 end + i32.const 1 + drop i32.const 0 i32.eqz if @@ -4468,6 +4580,8 @@ end ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -4478,6 +4592,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -4521,6 +4637,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 diff --git a/tests/compiler/retain-release.untouched.wat b/tests/compiler/retain-release.untouched.wat index c4939f63bc..522180fd90 100644 --- a/tests/compiler/retain-release.untouched.wat +++ b/tests/compiler/retain-release.untouched.wat @@ -154,6 +154,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/retain-return.untouched.wat b/tests/compiler/retain-return.untouched.wat index bb5af1523e..fc1875db4d 100644 --- a/tests/compiler/retain-return.untouched.wat +++ b/tests/compiler/retain-return.untouched.wat @@ -46,6 +46,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -64,6 +66,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -116,6 +120,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -255,6 +261,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -268,6 +276,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -361,6 +371,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -417,6 +429,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -436,6 +450,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -490,6 +506,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -600,6 +618,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -637,6 +657,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -668,6 +690,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -688,7 +712,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -882,6 +910,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -983,6 +1013,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1055,6 +1087,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1113,6 +1147,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1197,6 +1233,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1219,7 +1257,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1288,6 +1328,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1311,9 +1353,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1330,6 +1376,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1349,6 +1397,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1361,6 +1411,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1392,6 +1444,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1430,6 +1484,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1634,6 +1692,8 @@ call $start:retain-return ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1649,6 +1709,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/pure/decrement (param $0 i32) (local $1 i32) @@ -1660,6 +1722,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1683,6 +1749,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1700,6 +1770,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1712,6 +1784,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1732,6 +1806,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/rt/instanceof.untouched.wat b/tests/compiler/rt/instanceof.untouched.wat index 0ae6369ab6..c829a3e410 100644 --- a/tests/compiler/rt/instanceof.untouched.wat +++ b/tests/compiler/rt/instanceof.untouched.wat @@ -121,6 +121,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/rt/stub-realloc.untouched.wat b/tests/compiler/rt/stub-realloc.untouched.wat index 93d1a82682..17b224bc59 100644 --- a/tests/compiler/rt/stub-realloc.untouched.wat +++ b/tests/compiler/rt/stub-realloc.untouched.wat @@ -124,6 +124,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -1191,6 +1193,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -1216,6 +1222,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1311,6 +1321,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1426,6 +1440,8 @@ local.get $2 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.load offset=4 i32.const 1 @@ -1541,6 +1557,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 diff --git a/tests/compiler/runtime-full.untouched.wat b/tests/compiler/runtime-full.untouched.wat index ee75a36c2c..0185ae6b3f 100644 --- a/tests/compiler/runtime-full.untouched.wat +++ b/tests/compiler/runtime-full.untouched.wat @@ -41,6 +41,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -59,6 +61,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -111,6 +115,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -250,6 +256,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -263,6 +271,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -356,6 +366,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -412,6 +424,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -431,6 +445,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -485,6 +501,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -595,6 +613,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -632,6 +652,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -663,6 +685,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -683,7 +707,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -877,6 +905,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -978,6 +1008,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1050,6 +1082,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1108,6 +1142,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1192,6 +1228,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1214,7 +1252,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1283,6 +1323,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1306,9 +1348,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1325,6 +1371,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1344,6 +1392,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1356,6 +1406,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1387,6 +1439,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1425,6 +1479,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1464,6 +1522,8 @@ end ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -1479,6 +1539,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/pure/decrement (param $0 i32) (local $1 i32) @@ -1490,6 +1552,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1513,6 +1579,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -1530,6 +1600,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -1542,6 +1614,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -1562,6 +1636,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/runtime-stub.untouched.wat b/tests/compiler/runtime-stub.untouched.wat index 3b1ea5f9fd..6fb4fec6af 100644 --- a/tests/compiler/runtime-stub.untouched.wat +++ b/tests/compiler/runtime-stub.untouched.wat @@ -114,6 +114,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/std/array-access.untouched.wat b/tests/compiler/std/array-access.untouched.wat index f6b8db114c..f092f4f04a 100644 --- a/tests/compiler/std/array-access.untouched.wat +++ b/tests/compiler/std/array-access.untouched.wat @@ -54,6 +54,11 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -95,6 +100,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) @@ -144,6 +151,11 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -209,6 +221,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -429,6 +445,11 @@ local.get $1 call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index 268027e950..fa16e43702 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -75,6 +75,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) @@ -108,6 +110,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) @@ -124,6 +128,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -142,6 +148,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -194,6 +202,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -333,6 +343,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -346,6 +358,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -439,6 +453,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -495,6 +511,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -514,6 +532,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -568,6 +588,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -678,6 +700,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -715,6 +739,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -746,6 +772,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -766,7 +794,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -960,6 +992,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1061,6 +1095,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1133,6 +1169,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1191,6 +1229,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1275,6 +1315,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1297,7 +1339,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1366,6 +1410,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1389,9 +1435,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1408,6 +1458,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1427,6 +1479,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1439,6 +1493,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1470,6 +1526,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -2525,6 +2583,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2550,6 +2612,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2645,6 +2711,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2769,8 +2839,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -3284,6 +3358,8 @@ call $start:std/array-literal ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -3299,6 +3375,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3312,8 +3390,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -3337,6 +3419,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -3354,6 +3440,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -3366,6 +3454,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -3386,6 +3476,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -3404,12 +3498,16 @@ call $~lib/rt/pure/decrement ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -3420,6 +3518,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -3463,6 +3563,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index e81a55fa75..43920d5a33 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -8063,10 +8063,10 @@ ) (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $0 local.get $2 @@ -8250,10 +8250,10 @@ ) (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $1 local.get $2 @@ -8273,10 +8273,10 @@ i64.const 10 i64.lt_u if - local.get $1 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add local.get $2 i64.const 48 diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 7767a8667d..cbe059d6a4 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -275,6 +275,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -293,6 +295,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -345,6 +349,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -484,6 +490,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -497,6 +505,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -590,6 +600,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -646,6 +658,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -665,6 +679,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -719,6 +735,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -829,6 +847,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -866,6 +886,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -897,6 +919,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -917,7 +941,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1111,6 +1139,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1212,6 +1242,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1284,6 +1316,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1342,6 +1376,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1426,6 +1462,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1448,7 +1486,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1517,6 +1557,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1540,9 +1582,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1559,6 +1605,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1578,6 +1626,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1590,6 +1640,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1621,6 +1673,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1649,6 +1703,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1870,8 +1928,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1917,7 +1979,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -1994,6 +2058,8 @@ call $~lib/rt/pure/__retain local.set $0 i32.const 1 + drop + i32.const 1 if (result i32) local.get $0 i32.const 0 @@ -2026,6 +2092,8 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 1 + drop i32.const 0 if (result i32) local.get $0 @@ -2132,6 +2200,8 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 1 + drop i32.const 0 if (result i32) local.get $0 @@ -2147,12 +2217,16 @@ ) (func $~lib/array/Array.isArray (param $0 i32) (result i32) i32.const 0 + drop + i32.const 0 ) (func $~lib/array/Array.isArray<~lib/string/String> (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 1 + drop i32.const 0 if (result i32) local.get $0 @@ -2172,6 +2246,8 @@ call $~lib/rt/pure/__retain local.set $0 i32.const 1 + drop + i32.const 1 if (result i32) local.get $0 i32.const 0 @@ -3227,6 +3303,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3252,6 +3332,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3347,6 +3431,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3536,6 +3624,12 @@ select end local.set $3 + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 local.get $3 i32.lt_s @@ -3583,6 +3677,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -3638,6 +3734,8 @@ local.set $4 local.get $4 if + i32.const 0 + drop local.get $0 local.get $3 call $~lib/array/Array#__get @@ -3731,6 +3829,12 @@ select end local.set $3 + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop loop $for-loop|0 local.get $2 local.get $3 @@ -3786,6 +3890,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -3841,6 +3947,8 @@ local.set $4 local.get $4 if + i32.const 0 + drop local.get $0 local.get $3 call $~lib/array/Array#__get @@ -3963,6 +4071,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3981,7 +4091,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -4076,6 +4188,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -4170,6 +4284,8 @@ local.get $3 i32.const 2 call $~lib/array/ensureSize + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $2 @@ -4210,6 +4326,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#pop (param $0 i32) (result i32) @@ -4254,6 +4372,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 1 + drop local.get $2 local.get $1 i32.gt_s @@ -4328,7 +4448,9 @@ i32.add local.set $4 local.get $4 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if local.get $1 @@ -4354,6 +4476,8 @@ i32.const 2 i32.shl local.set $7 + i32.const 0 + drop local.get $6 local.get $0 i32.load offset=4 @@ -4486,6 +4610,8 @@ i32.lt_s select local.set $11 + i32.const 0 + drop local.get $4 local.get $8 i32.const 2 @@ -4556,6 +4682,8 @@ local.set $4 local.get $4 if + i32.const 0 + drop local.get $0 local.get $3 call $~lib/array/Array#__get @@ -4613,6 +4741,8 @@ i32.const 2 i32.shl call $~lib/memory/memory.copy + i32.const 0 + drop local.get $3 local.get $1 i32.store @@ -4664,6 +4794,8 @@ i32.shl i32.add i32.const 0 + drop + i32.const 0 i32.store local.get $0 local.get $4 @@ -4933,6 +5065,8 @@ i32.const -1 ) (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + drop local.get $0 local.get $1 local.get $2 @@ -4946,6 +5080,8 @@ (local $4 i32) (local $5 i32) (local $6 f32) + i32.const 1 + drop local.get $0 i32.load offset=12 local.set $3 @@ -5029,6 +5165,8 @@ (local $4 i32) (local $5 i32) (local $6 f64) + i32.const 1 + drop local.get $0 i32.load offset=12 local.set $3 @@ -5351,6 +5489,11 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -5505,9 +5648,16 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop local.get $2 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -6212,6 +6362,8 @@ local.get $1 call_indirect (type $i32_i32_i32_=>_f32) local.set $8 + i32.const 0 + drop local.get $4 local.get $5 i32.const 2 @@ -6259,6 +6411,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $start:std/array~anonymous|22 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -6331,6 +6485,8 @@ local.get $1 call_indirect (type $i32_i32_i32_=>_i32) local.set $7 + i32.const 0 + drop local.get $4 local.get $5 i32.const 2 @@ -7477,6 +7633,8 @@ local.set $7 local.get $1 local.set $6 + i32.const 0 + drop local.get $7 i32.const 256 i32.lt_s @@ -7537,6 +7695,14 @@ unreachable end block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop i32.const 44 br $~lib/util/sort/COMPARATOR|inlined.0 end @@ -7601,6 +7767,8 @@ local.get $4 if block $for-continue|0 + i32.const 1 + drop local.get $0 local.get $3 call $~lib/array/Array#__get @@ -8090,6 +8258,8 @@ local.set $7 local.get $1 local.set $6 + i32.const 0 + drop local.get $7 i32.const 256 i32.lt_s @@ -8150,6 +8320,14 @@ unreachable end block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop i32.const 45 br $~lib/util/sort/COMPARATOR|inlined.0 end @@ -8190,6 +8368,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -8247,6 +8427,8 @@ local.get $4 if block $for-continue|0 + i32.const 1 + drop local.get $0 local.get $3 call $~lib/array/Array#__get @@ -8734,6 +8916,8 @@ local.set $5 local.get $1 local.set $4 + i32.const 0 + drop local.get $5 i32.const 256 i32.lt_s @@ -8766,6 +8950,17 @@ unreachable end block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 1 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop i32.const 46 br $~lib/util/sort/COMPARATOR|inlined.0 end @@ -9210,6 +9405,8 @@ local.set $5 local.get $1 local.set $4 + i32.const 0 + drop local.get $5 i32.const 256 i32.lt_s @@ -9246,6 +9443,17 @@ unreachable end block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 0 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop i32.const 47 br $~lib/util/sort/COMPARATOR|inlined.0 end @@ -9466,6 +9674,17 @@ local.set $0 local.get $0 block $~lib/util/sort/COMPARATOR|inlined.1 (result i32) + i32.const 1 + drop + i32.const 1 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop i32.const 48 br $~lib/util/sort/COMPARATOR|inlined.1 end @@ -9500,7 +9719,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -9577,6 +9798,8 @@ local.get $2 call $~lib/rt/pure/__retain local.set $2 + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $1 @@ -9871,6 +10094,8 @@ local.set $4 local.get $1 local.set $6 + i32.const 1 + drop local.get $5 local.get $4 local.get $6 @@ -9910,6 +10135,11 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -10023,7 +10253,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -10115,6 +10347,8 @@ local.get $2 call $~lib/rt/pure/__retain local.set $2 + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $1 @@ -10402,6 +10636,8 @@ local.set $4 local.get $1 local.set $6 + i32.const 1 + drop local.get $5 local.get $4 local.get $6 @@ -10441,6 +10677,11 @@ local.get $1 call $~lib/array/Array>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -10709,6 +10950,8 @@ local.set $4 local.get $1 local.set $6 + i32.const 1 + drop local.get $5 local.get $4 local.get $6 @@ -10748,6 +10991,11 @@ local.get $1 call $~lib/array/Array<~lib/string/String | null>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop local.get $2 ) (func $std/array/isSorted<~lib/string/String | null> (param $0 i32) (param $1 i32) (result i32) @@ -10875,7 +11123,11 @@ i32.shl i32.add local.set $6 - local.get $4 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 i32.const 4 i32.ge_u if (result i32) @@ -11090,6 +11342,12 @@ unreachable end block $~lib/util/sort/COMPARATOR<~lib/string/String | null>|inlined.0 (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 55 br $~lib/util/sort/COMPARATOR<~lib/string/String | null>|inlined.0 end @@ -11246,6 +11504,8 @@ local.set $4 local.get $4 if + i32.const 0 + drop local.get $0 local.get $3 call $~lib/array/Array<~lib/string/String | null>#__get @@ -11295,7 +11555,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 32 @@ -11558,6 +11820,8 @@ local.get $2 call $~lib/rt/pure/__retain local.set $2 + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $1 @@ -11823,6 +12087,8 @@ local.set $4 local.get $1 local.set $6 + i32.const 1 + drop local.get $5 local.get $4 local.get $6 @@ -11862,6 +12128,11 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -12086,6 +12357,12 @@ unreachable end block $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop i32.const 56 br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 end @@ -12390,6 +12667,8 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -12636,6 +12915,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -12650,6 +12933,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa32 return @@ -12668,6 +12960,8 @@ local.set $0 i32.const 0 local.set $3 + i32.const 1 + drop local.get $2 i32.const 0 i32.lt_s @@ -12682,6 +12976,16 @@ i32.const 45 i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $2 i32.const 10 i32.lt_u @@ -12702,6 +13006,10 @@ end local.get $3 local.set $4 + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 call $~lib/util/number/decimalCount32 @@ -12713,6 +13021,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -12875,6 +13187,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -12912,6 +13228,10 @@ local.set $4 local.get $1 local.set $3 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $4 local.get $3 @@ -12920,6 +13240,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa32 return @@ -12938,6 +13267,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i32.const 10 i32.lt_u @@ -12952,6 +13289,10 @@ end local.get $3 local.set $4 + i32.const 4 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 call $~lib/util/number/decimalCount32 @@ -12963,6 +13304,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -13125,6 +13470,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -13857,6 +14206,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -13929,6 +14282,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -14676,6 +15033,12 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -14928,6 +15291,18 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -15165,6 +15540,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -15399,6 +15788,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -15415,6 +15818,15 @@ call $~lib/array/Array#join ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 24 i32.shl @@ -15437,6 +15849,8 @@ local.set $0 i32.const 0 local.set $3 + i32.const 1 + drop local.get $2 i32.const 24 i32.shl @@ -15455,6 +15869,16 @@ i32.const 45 i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $2 i32.const 24 i32.shl @@ -15483,6 +15907,10 @@ end local.get $3 local.set $4 + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 i32.const 24 @@ -15502,6 +15930,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -15664,6 +16096,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -15680,6 +16116,15 @@ call $~lib/array/Array#join ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 65535 i32.and @@ -15700,6 +16145,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i32.const 65535 i32.and @@ -15718,6 +16171,10 @@ end local.get $3 local.set $4 + i32.const 2 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 i32.const 65535 @@ -15733,6 +16190,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -15895,6 +16356,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -16109,7 +16574,8 @@ return end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -16130,6 +16596,10 @@ local.set $5 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -16150,6 +16620,10 @@ local.set $7 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $7 local.get $4 @@ -16159,6 +16633,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa64 return @@ -16179,6 +16662,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i64.const 10 i64.lt_u @@ -16193,8 +16684,13 @@ end local.get $3 local.set $4 + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $2 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $2 @@ -16211,6 +16707,10 @@ local.set $7 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $8 local.get $7 local.get $6 @@ -16227,6 +16727,10 @@ local.set $9 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $9 local.get $6 @@ -16390,6 +16894,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -16435,7 +16943,8 @@ local.set $0 end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -16458,6 +16967,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -16480,6 +16993,10 @@ local.set $8 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $8 local.get $5 @@ -16495,6 +17012,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/itoa64 return @@ -16515,6 +17041,8 @@ local.set $0 i32.const 0 local.set $3 + i32.const 1 + drop local.get $2 i64.const 0 i64.lt_s @@ -16529,6 +17057,16 @@ i32.const 45 i32.store16 end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $2 i64.const 10 i64.lt_u @@ -16549,8 +17087,13 @@ end local.get $3 local.set $4 + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $2 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $2 @@ -16567,6 +17110,10 @@ local.set $7 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $8 local.get $7 local.get $6 @@ -16583,6 +17130,10 @@ local.set $9 local.get $4 local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $9 local.get $6 @@ -16746,6 +17297,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -16990,6 +17545,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -17006,6 +17575,15 @@ call $~lib/array/Array<~lib/array/Array>#join ) (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $0 i32.const 255 i32.and @@ -17026,6 +17604,14 @@ local.set $0 i32.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop local.get $2 i32.const 255 i32.and @@ -17044,6 +17630,10 @@ end local.get $3 local.set $4 + i32.const 1 + i32.const 4 + i32.le_u + drop local.get $4 local.get $2 i32.const 255 @@ -17059,6 +17649,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -17221,6 +17815,10 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -17460,6 +18058,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -17704,6 +18316,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -17943,6 +18569,20 @@ local.get $0 i32.load offset=12 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.lt_s + drop + i32.const 0 + drop + i32.const 1 + drop local.get $2 local.get $3 local.get $1 @@ -17970,6 +18610,9 @@ (local $9 i32) (local $10 i32) (local $11 i32) + i32.const 1 + i32.eqz + drop local.get $0 i32.load offset=12 local.set $1 @@ -18085,6 +18728,8 @@ br $for-loop|1 end end + i32.const 0 + drop local.get $9 call $~lib/rt/pure/__retain ) @@ -18100,6 +18745,9 @@ (local $9 i32) (local $10 i32) (local $11 i32) + i32.const 1 + i32.eqz + drop local.get $0 i32.load offset=12 local.set $1 @@ -18215,6 +18863,8 @@ br $for-loop|1 end end + i32.const 1 + drop i32.const 0 local.set $4 loop $for-loop|2 @@ -24379,6 +25029,8 @@ call $start:std/array ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/decrement (param $0 i32) @@ -24391,8 +25043,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -24416,6 +25072,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -24433,6 +25093,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -24445,6 +25107,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -24465,6 +25129,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -24483,18 +25151,24 @@ call $~lib/rt/pure/decrement ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -24505,6 +25179,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24544,12 +25220,16 @@ call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -24560,6 +25240,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24603,6 +25285,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24646,6 +25330,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24689,6 +25375,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24732,6 +25420,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24771,39 +25461,52 @@ call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -24814,6 +25517,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24857,6 +25562,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24900,6 +25607,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -24943,6 +25652,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index 0798596c5f..e705a3dd6c 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -48,6 +48,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -66,6 +68,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -118,6 +122,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -257,6 +263,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -270,6 +278,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -363,6 +373,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -419,6 +431,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -438,6 +452,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -492,6 +508,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -602,6 +620,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -639,6 +659,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -670,6 +692,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -690,7 +714,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -884,6 +912,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -985,6 +1015,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1057,6 +1089,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1115,6 +1149,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1199,6 +1235,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1221,7 +1259,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1290,6 +1330,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1313,9 +1355,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1332,6 +1378,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1351,6 +1399,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1363,6 +1413,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1394,6 +1446,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1422,6 +1476,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1643,8 +1701,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2745,6 +2807,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2770,6 +2836,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2865,6 +2935,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3045,6 +3119,8 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 1 + drop local.get $0 i32.const 0 i32.eq @@ -3056,269 +3132,1286 @@ local.get $1 return end - i32.const 0 - local.set $1 local.get $0 - call $~lib/rt/pure/__release - local.get $1 - ) - (func $~lib/arraybuffer/ArrayBuffer.isView (param $0 i32) (result i32) + drop i32.const 0 - ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array | null> (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end local.get $0 + drop i32.const 0 - i32.eq if - i32.const 0 + i32.const 1 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 return end - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array | null> (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 local.get $0 + drop i32.const 0 - i32.eq if - i32.const 0 + i32.const 1 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 return end - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView | null> (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 local.get $0 + drop i32.const 0 - i32.eq if - i32.const 0 + i32.const 1 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 return end - i32.const 1 - local.set $1 local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.const 1073741808 - local.get $2 - i32.shr_u - i32.gt_u + drop + i32.const 0 if - i32.const 32 - i32.const 80 - i32.const 23 - i32.const 57 - call $~lib/builtins/abort - unreachable + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return end - local.get $1 - local.get $2 - i32.shl - local.tee $1 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - i32.const 0 - local.get $1 - call $~lib/memory/memory.fill local.get $0 - i32.eqz + drop + i32.const 0 if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return end local.get $0 + drop i32.const 0 - i32.store + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end local.get $0 + drop i32.const 0 - i32.store offset=4 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end local.get $0 + drop i32.const 0 - i32.store offset=8 - local.get $0 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $6 - i32.ne if - local.get $5 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 + i32.const 1 + local.set $1 + local.get $0 call $~lib/rt/pure/__release + local.get $1 + return end - local.get $5 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - ) - (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) local.get $0 - if (result i32) + drop + i32.const 0 + if + i32.const 1 + local.set $1 local.get $0 - else - i32.const 12 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + call $~lib/rt/pure/__release + local.get $1 + return end - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/rt/__allocBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + ) + (func $~lib/arraybuffer/ArrayBuffer.isView (param $0 i32) (result i32) + i32.const 0 + drop + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + return + end + i32.const 0 + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array | null> (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 1 + drop + local.get $0 + i32.const 0 + i32.eq + if + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 1 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array | null> (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 1 + drop + local.get $0 + i32.const 0 + i32.eq + if + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 1 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView | null> (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 1 + drop + local.get $0 + i32.const 0 + i32.eq + if + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 1 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.const 1073741808 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 23 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + ) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 5 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/rt/__allocBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy + end + local.get $3 + ) + (func $~lib/rt/__allocArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 16 + local.get $2 + call $~lib/rt/tlsf/__alloc + local.set $4 + local.get $0 + local.get $1 + i32.shl + local.set $5 + local.get $5 + i32.const 0 + local.get $3 + call $~lib/rt/__allocBuffer + local.set $6 + local.get $4 + local.get $6 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + local.get $6 + i32.store offset=4 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $0 + i32.store offset=12 + local.get $4 + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array> (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 0 + drop + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release local.get $1 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $2 + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 0 + drop + local.get $0 + drop + i32.const 0 if - local.get $3 - local.get $2 + i32.const 1 + local.set $1 local.get $0 - call $~lib/memory/memory.copy + call $~lib/rt/pure/__release + local.get $1 + return end - local.get $3 + local.get $0 + drop + i32.const 1 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 ) - (func $~lib/rt/__allocArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - i32.const 16 - local.get $2 - call $~lib/rt/tlsf/__alloc - local.set $4 + (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (param $1 i32) (result i32) local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 9 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end local.get $1 - i32.shl - local.set $5 - local.get $5 - i32.const 0 - local.get $3 - call $~lib/rt/__allocBuffer - local.set $6 - local.get $4 - local.get $6 - call $~lib/rt/pure/__retain - i32.store - local.get $4 - local.get $6 - i32.store offset=4 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 local.get $0 - i32.store offset=12 - local.get $4 ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array> (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array> (param $0 i32) (result i32) (local $1 i32) local.get $0 - call $~lib/rt/pure/__retain - local.set $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 0 + drop + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 1 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop i32.const 0 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> (param $0 i32) (result i32) - (local $1 i32) + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 1 - local.set $1 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - ) - (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (param $1 i32) (result i32) + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end local.get $0 - if (result i32) + drop + i32.const 0 + if + i32.const 1 + local.set $1 local.get $0 - else - i32.const 12 - i32.const 9 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + call $~lib/rt/pure/__release + local.get $1 + return end - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 local.get $0 - ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array> (param $0 i32) (result i32) - (local $1 i32) + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 1 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + i32.const 0 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 - return ) (func $~lib/dataview/DataView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -3431,12 +4524,145 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 + i32.const 0 + drop + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop i32.const 1 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + i32.const 0 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 - return ) (func $start:std/arraybuffer (local $0 i32) @@ -3813,6 +5039,8 @@ call $start:std/arraybuffer ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -3828,6 +5056,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3841,8 +5071,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -3866,6 +5100,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -3883,6 +5121,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -3895,6 +5135,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -3915,6 +5157,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -3933,6 +5179,8 @@ call $~lib/rt/pure/decrement ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index b02351d8d1..e402c5d8b1 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -56,6 +56,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -74,6 +76,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -126,6 +130,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -265,6 +271,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -278,6 +286,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -371,6 +381,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -427,6 +439,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -446,6 +460,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -500,6 +516,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -610,6 +628,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -647,6 +667,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -678,6 +700,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -698,7 +722,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -892,6 +920,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -993,6 +1023,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1065,6 +1097,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1123,6 +1157,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1207,6 +1243,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1229,7 +1267,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1298,6 +1338,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1321,9 +1363,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1340,6 +1386,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1359,6 +1407,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1371,6 +1421,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1402,6 +1454,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1430,6 +1484,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1651,8 +1709,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1890,6 +1952,16 @@ i32.sub ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -1943,6 +2015,20 @@ (local $1 i64) (local $2 i64) (local $3 i64) + i32.const 1 + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 i64.const 8 i64.shr_u @@ -2034,6 +2120,12 @@ i32.load8_s ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -2084,6 +2176,16 @@ end ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -2135,6 +2237,20 @@ (local $1 i64) (local $2 i64) (local $3 i64) + i32.const 1 + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 i64.const 8 i64.shr_u @@ -2224,6 +2340,12 @@ i32.load8_u ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -4416,6 +4538,8 @@ call $start:std/dataview ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -4431,6 +4555,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -4444,8 +4570,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -4469,6 +4599,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -4486,6 +4620,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -4498,6 +4634,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -4518,6 +4656,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/std/date.untouched.wat b/tests/compiler/std/date.untouched.wat index c5170c2fcd..1455f2e847 100644 --- a/tests/compiler/std/date.untouched.wat +++ b/tests/compiler/std/date.untouched.wat @@ -118,6 +118,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/std/hash.untouched.wat b/tests/compiler/std/hash.untouched.wat index 56d010a3d5..542717b87e 100644 --- a/tests/compiler/std/hash.untouched.wat +++ b/tests/compiler/std/hash.untouched.wat @@ -218,6 +218,8 @@ i32.const 0 call $~lib/rt/stub/__retain local.set $0 + i32.const 1 + drop local.get $0 call $~lib/util/hash/hashStr local.set $1 @@ -231,6 +233,8 @@ block $~lib/util/hash/HASH<~lib/string/String>|inlined.0 (result i32) i32.const 32 local.set $1 + i32.const 1 + drop local.get $1 call $~lib/util/hash/hashStr local.set $0 @@ -244,6 +248,8 @@ block $~lib/util/hash/HASH<~lib/string/String>|inlined.1 (result i32) i32.const 48 local.set $0 + i32.const 1 + drop local.get $0 call $~lib/util/hash/hashStr local.set $1 @@ -257,6 +263,8 @@ block $~lib/util/hash/HASH<~lib/string/String>|inlined.2 (result i32) i32.const 80 local.set $1 + i32.const 1 + drop local.get $1 call $~lib/util/hash/hashStr local.set $0 @@ -270,6 +278,8 @@ block $~lib/util/hash/HASH<~lib/string/String>|inlined.3 (result i32) i32.const 112 local.set $0 + i32.const 1 + drop local.get $0 call $~lib/util/hash/hashStr local.set $1 @@ -283,6 +293,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) f32.const 0 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -293,6 +313,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) f32.const 1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -303,6 +333,16 @@ block $~lib/util/hash/HASH|inlined.2 (result i32) f32.const 1.100000023841858 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -313,6 +353,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) f32.const 0 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -323,6 +373,16 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) f32.const inf local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -333,6 +393,16 @@ block $~lib/util/hash/HASH|inlined.5 (result i32) f32.const nan:0x400000 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -343,6 +413,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) f64.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -353,6 +437,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) f64.const 1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -363,6 +461,20 @@ block $~lib/util/hash/HASH|inlined.2 (result i32) f64.const 1.1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -373,6 +485,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) f64.const 0 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -383,6 +509,20 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) f64.const inf local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -393,6 +533,20 @@ block $~lib/util/hash/HASH|inlined.5 (result i32) f64.const nan:0x8000000000000 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 diff --git a/tests/compiler/std/libm.untouched.wat b/tests/compiler/std/libm.untouched.wat index 6eef567d77..490f0dbf53 100644 --- a/tests/compiler/std/libm.untouched.wat +++ b/tests/compiler/std/libm.untouched.wat @@ -418,7 +418,9 @@ local.get $2 i32.const 1 i32.shl - i32.const 2034237440 + i32.const 1017118720 + i32.const 1 + i32.shl i32.lt_u if local.get $0 @@ -615,6 +617,10 @@ (local $16 i64) (local $17 f64) (local $18 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -624,7 +630,9 @@ local.get $2 i64.const 4606619468846596096 i64.sub - i64.const 854320534781952 + i64.const 4607473789381378048 + i64.const 4606619468846596096 + i64.sub i64.lt_u if local.get $1 @@ -734,7 +742,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 @@ -751,7 +761,8 @@ br $~lib/util/math/log_lut|inlined.0 end local.get $2 - i64.const 9218868437227405312 + f64.const inf + i64.reinterpret_f64 i64.eq if local.get $1 @@ -924,7 +935,9 @@ i64.and local.set $1 local.get $1 - i64.const 1024 + i64.const 1023 + i64.const 1 + i64.add i64.lt_u if local.get $0 @@ -949,7 +962,9 @@ return end local.get $1 - i64.const 1049 + i64.const 1023 + i64.const 26 + i64.add i64.lt_u if f64.const 2 @@ -1160,7 +1175,9 @@ f64.reinterpret_i64 local.set $3 local.get $2 - i64.const 1049 + i64.const 1023 + i64.const 26 + i64.add i64.ge_u if local.get $3 @@ -1170,7 +1187,9 @@ local.set $3 else local.get $2 - i64.const 1024 + i64.const 1023 + i64.const 1 + i64.add i64.ge_u if f64.const 2 @@ -1191,7 +1210,9 @@ local.set $3 else local.get $2 - i64.const 997 + i64.const 1023 + i64.const 26 + i64.sub i64.ge_u if local.get $3 @@ -1500,11 +1521,15 @@ f64.abs local.set $3 local.get $2 - i64.const 1022 + i64.const 1023 + i64.const 1 + i64.sub i64.lt_u if local.get $2 - i64.const 991 + i64.const 1023 + i64.const 32 + i64.sub i64.ge_u if f64.const 0.5 @@ -1748,7 +1773,9 @@ unreachable end local.get $3 - i32.const 67108864 + i32.const 64 + i32.const 20 + i32.shl i32.add local.get $5 i32.lt_u @@ -1780,7 +1807,9 @@ i32.and if (result i32) local.get $5 - i32.const 67108864 + i32.const 64 + i32.const 20 + i32.shl i32.add local.get $3 i32.lt_u @@ -2012,6 +2041,10 @@ (local $3 i64) (local $4 i64) i32.const 0 + i32.const 0 + i32.gt_s + drop + i32.const 0 local.set $1 local.get $0 i64.reinterpret_f64 @@ -2023,7 +2056,9 @@ i64.and local.set $3 local.get $3 - i64.const 1053 + i64.const 1023 + i64.const 30 + i64.add i64.le_u if local.get $0 @@ -2031,7 +2066,11 @@ local.set $1 else local.get $3 - i64.const 1106 + i64.const 1023 + i64.const 30 + i64.add + i64.const 53 + i64.add i64.le_u if local.get $2 @@ -2628,6 +2667,10 @@ i32.const 2147483647 i32.and local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $12 i32.const 1073928572 i32.lt_u @@ -3352,6 +3395,10 @@ (local $19 f64) (local $20 f64) (local $21 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/exp_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -3634,7 +3681,11 @@ i32.lt_u if local.get $2 - i32.const 1045430272 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub i32.lt_u if f64.const 1 @@ -3814,7 +3865,9 @@ f64.const 1 local.set $7 local.get $5 - i32.const 1533 + i32.const 1023 + i32.const 510 + i32.add i32.gt_s if f64.const 5260135901548373507240989e186 @@ -3829,7 +3882,9 @@ local.set $1 else local.get $6 - i32.const 573 + i32.const 1023 + i32.const 450 + i32.sub i32.lt_s if f64.const 1.90109156629516e-211 @@ -4247,6 +4302,10 @@ (local $21 f64) (local $22 f64) (local $23 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -4256,7 +4315,9 @@ local.get $2 i64.const 4606800540372828160 i64.sub - i64.const 581272283906048 + i64.const 4607381812656734208 + i64.const 4606800540372828160 + i64.sub i64.lt_u if local.get $1 @@ -4360,7 +4421,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 @@ -4689,6 +4752,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/pow_lut|inlined.0 (result f64) local.get $0 local.set $3 @@ -4713,7 +4780,9 @@ local.get $7 i64.const 1 i64.sub - i64.const 2046 + i64.const 2047 + i64.const 1 + i64.sub i64.ge_u if (result i32) i32.const 1 @@ -4723,7 +4792,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u end if @@ -4734,7 +4805,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $6 @@ -4810,7 +4883,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $3 @@ -4839,14 +4914,18 @@ br $~lib/util/math/checkint|inlined.0 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 br $~lib/util/math/checkint|inlined.0 end i64.const 1 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add local.get $11 i64.sub i64.shl @@ -4920,7 +4999,9 @@ br $~lib/util/math/checkint|inlined.1 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 @@ -4991,7 +5072,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u if local.get $5 @@ -5573,6 +5656,10 @@ block $~lib/math/NativeMath.sign|inlined.0 (result f64) local.get $0 local.set $1 + i32.const 0 + i32.const 0 + i32.gt_s + drop local.get $1 f64.const 0 f64.gt @@ -5737,6 +5824,10 @@ i32.const 2147483647 i32.and local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $12 i32.const 1073928572 i32.lt_u @@ -6161,7 +6252,11 @@ i32.lt_u if local.get $3 - i32.const 1045430272 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub i32.lt_u if local.get $0 @@ -6520,6 +6615,10 @@ i32.const 2147483647 i32.and local.set $7 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $7 i32.const 1073928572 i32.lt_u @@ -7099,7 +7198,9 @@ local.get $1 i32.const 1 i32.shl - i32.const 1728053248 + i32.const 864026624 + i32.const 1 + i32.shl i32.lt_u if local.get $0 @@ -7264,6 +7365,10 @@ (local $11 f64) (local $12 f64) (local $13 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/logf_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -7273,7 +7378,9 @@ local.get $2 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u if local.get $2 @@ -7427,7 +7534,11 @@ i32.and local.set $2 local.get $2 - i32.const 1073741824 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add i32.lt_u if local.get $0 @@ -7446,7 +7557,11 @@ return end local.get $2 - i32.const 1166016512 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add i32.lt_u if f32.const 2 @@ -7583,7 +7698,11 @@ f32.reinterpret_i32 local.set $2 local.get $1 - i32.const 1166016512 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add i32.ge_u if local.get $2 @@ -7593,7 +7712,11 @@ local.set $2 else local.get $1 - i32.const 1073741824 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add i32.ge_u if f32.const 2 @@ -7614,7 +7737,11 @@ local.set $2 else local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.ge_u if local.get $2 @@ -7888,11 +8015,19 @@ f32.abs local.set $2 local.get $1 - i32.const 1056964608 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.sub i32.lt_u if local.get $1 - i32.const 796917760 + i32.const 1065353216 + i32.const 32 + i32.const 23 + i32.shl + i32.sub i32.ge_u if f32.const 0.5 @@ -8106,7 +8241,9 @@ unreachable end local.get $2 - i32.const 218103808 + i32.const 26 + i32.const 23 + i32.shl i32.add local.get $3 i32.lt_u @@ -8138,7 +8275,9 @@ i32.and if (result i32) local.get $3 - i32.const 218103808 + i32.const 26 + i32.const 23 + i32.shl i32.add local.get $2 i32.lt_u @@ -8442,6 +8581,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u @@ -9280,6 +9423,10 @@ (local $9 f64) (local $10 f64) (local $11 i64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/expf_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -9316,7 +9463,8 @@ br $~lib/util/math/expf_lut|inlined.0 end local.get $1 - f32.const 88.72283172607422 + i32.const 1118925335 + f32.reinterpret_i32 f32.gt if local.get $1 @@ -9325,7 +9473,8 @@ br $~lib/util/math/expf_lut|inlined.0 end local.get $1 - f32.const -103.97207641601562 + i32.const -1026559564 + f32.reinterpret_i32 f32.lt if f32.const 0 @@ -9418,7 +9567,11 @@ i32.lt_u if local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.lt_u if f32.const 1 @@ -9538,14 +9691,18 @@ f32.reinterpret_i32 local.set $1 local.get $3 - i32.const 2139095040 + i32.const 255 + i32.const 23 + i32.shl i32.eq if local.get $1 return end local.get $2 - i32.const 2139095040 + i32.const 255 + i32.const 23 + i32.shl i32.ge_u if (result i32) i32.const 1 @@ -9560,7 +9717,9 @@ local.get $2 local.get $3 i32.sub - i32.const 209715200 + i32.const 25 + i32.const 23 + i32.shl i32.ge_u end if @@ -9572,7 +9731,11 @@ f32.const 1 local.set $5 local.get $2 - i32.const 1568669696 + i32.const 127 + i32.const 60 + i32.add + i32.const 23 + i32.shl i32.ge_u if f32.const 1237940039285380274899124e3 @@ -9587,7 +9750,11 @@ local.set $1 else local.get $3 - i32.const 562036736 + i32.const 127 + i32.const 60 + i32.sub + i32.const 23 + i32.shl i32.lt_u if f32.const 8.077935669463161e-28 @@ -9883,6 +10050,10 @@ (local $13 f64) (local $14 f64) (local $15 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log2f_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -9892,7 +10063,9 @@ local.get $2 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u if local.get $2 @@ -10139,6 +10312,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/powf_lut|inlined.0 (result f32) local.get $0 local.set $3 @@ -10157,7 +10334,9 @@ local.get $5 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u local.get $6 local.set $8 @@ -10166,7 +10345,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u i32.const 0 i32.ne @@ -10194,7 +10377,9 @@ local.get $5 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u if (result i32) i32.const 1 @@ -10202,7 +10387,9 @@ local.get $6 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u end if @@ -10214,7 +10401,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.eq if f32.const nan:0x400000 @@ -10223,7 +10412,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.lt_u local.get $6 i32.const 31 @@ -10246,7 +10437,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u if local.get $3 @@ -10274,14 +10469,18 @@ br $~lib/util/math/checkintf|inlined.0 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 br $~lib/util/math/checkintf|inlined.0 end i32.const 1 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add local.get $10 i32.sub i32.shl @@ -10347,7 +10546,9 @@ br $~lib/util/math/checkintf|inlined.1 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 @@ -10669,6 +10870,10 @@ block $~lib/math/NativeMathf.sign|inlined.0 (result f32) local.get $0 local.set $1 + i32.const 0 + i32.const 0 + i32.gt_s + drop local.get $1 f32.const 0 f32.gt @@ -10775,6 +10980,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u @@ -11328,7 +11537,11 @@ i32.lt_u if local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.lt_u if local.get $0 @@ -11510,6 +11723,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index e98053247d..fd4e40e289 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -64,6 +64,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -82,6 +84,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -134,6 +138,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -273,6 +279,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -286,6 +294,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -379,6 +389,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -435,6 +447,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -454,6 +468,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -508,6 +524,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -618,6 +636,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -655,6 +675,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -686,6 +708,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -706,7 +730,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -900,6 +928,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1001,6 +1031,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1073,6 +1105,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1131,6 +1165,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1215,6 +1251,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1237,7 +1275,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1306,6 +1346,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1329,9 +1371,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1348,6 +1394,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1367,6 +1415,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1379,6 +1429,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1410,6 +1462,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1450,8 +1504,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1495,6 +1553,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1861,6 +1923,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -1949,6 +2021,16 @@ local.get $10 i32.load8_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $12 call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.2 @@ -2038,6 +2120,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $3 i32.const 24 i32.shl @@ -2054,6 +2146,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -2105,9 +2199,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store8 local.get $5 + i32.const 0 + drop local.get $2 i32.store offset=4 local.get $0 @@ -2147,6 +2245,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -2182,6 +2290,8 @@ (local $6 i32) local.get $1 i32.const 1073741808 + i32.const 0 + i32.shr_u i32.gt_u if i32.const 192 @@ -3341,6 +3451,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3366,6 +3480,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3461,6 +3579,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3555,6 +3677,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3573,7 +3697,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -3668,6 +3794,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -3749,6 +3877,8 @@ end ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -3797,6 +3927,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 0 @@ -3877,7 +4009,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 192 @@ -3949,6 +4083,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -3997,6 +4133,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 2 @@ -4245,6 +4383,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) @@ -4274,6 +4414,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -4404,6 +4546,16 @@ local.get $10 i32.load8_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $12 call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.5 @@ -4493,6 +4645,16 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $3 i32.const 24 i32.shl @@ -4509,6 +4671,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store8 offset=1 @@ -4560,9 +4724,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store8 local.get $5 + i32.const 0 + drop local.get $2 i32.store8 offset=1 local.get $0 @@ -4760,6 +4928,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.1 @@ -4849,6 +5035,24 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 @@ -4861,6 +5065,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -4912,9 +5118,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store local.get $5 + i32.const 0 + drop local.get $2 i32.store offset=4 local.get $0 @@ -4964,6 +5174,16 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -4980,6 +5200,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -5668,6 +5892,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -5754,6 +5988,16 @@ local.get $10 i32.load8_u local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $12 call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.2 @@ -5843,6 +6087,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $3 i32.const 255 i32.and @@ -5857,6 +6111,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -5908,9 +6164,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store8 local.get $5 + i32.const 0 + drop local.get $2 i32.store offset=4 local.get $0 @@ -5950,6 +6210,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -5983,6 +6253,8 @@ (local $6 i32) local.get $1 i32.const 1073741808 + i32.const 0 + i32.shr_u i32.gt_u if i32.const 192 @@ -6054,6 +6326,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -6102,7 +6376,9 @@ local.get $0 i32.load offset=12 local.set $2 - local.get $0 + i32.const 0 + drop + local.get $0 local.get $1 i32.const 0 call $~lib/array/ensureSize @@ -6343,6 +6619,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -6471,6 +6749,16 @@ local.get $10 i32.load8_u local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $12 call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.5 @@ -6560,6 +6848,16 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $3 i32.const 255 i32.and @@ -6574,6 +6872,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store8 offset=1 @@ -6625,9 +6925,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store8 local.get $5 + i32.const 0 + drop local.get $2 i32.store8 offset=1 local.get $0 @@ -6673,6 +6977,16 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -6687,6 +7001,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -7377,6 +7695,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -7465,6 +7797,20 @@ local.get $10 i32.load16_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.2 @@ -7554,6 +7900,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $3 i32.const 16 i32.shl @@ -7570,6 +7930,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -7621,9 +7983,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store16 local.get $5 + i32.const 0 + drop local.get $2 i32.store offset=4 local.get $0 @@ -7663,6 +8029,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -7697,7 +8077,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 536870904 + i32.const 1073741808 + i32.const 1 + i32.shr_u i32.gt_u if i32.const 192 @@ -7769,6 +8151,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -7817,6 +8201,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 1 @@ -8058,6 +8444,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -8188,6 +8576,20 @@ local.get $10 i32.load16_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.5 @@ -8277,6 +8679,20 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $3 i32.const 16 i32.shl @@ -8293,6 +8709,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store16 offset=2 @@ -8344,9 +8762,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store16 local.get $5 + i32.const 0 + drop local.get $2 i32.store16 offset=2 local.get $0 @@ -8392,6 +8814,20 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -8408,6 +8844,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -9096,6 +9536,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 65535 i32.and @@ -9182,6 +9636,20 @@ local.get $10 i32.load16_u local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.2 @@ -9271,6 +9739,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $3 i32.const 65535 i32.and @@ -9285,6 +9767,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -9336,9 +9820,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store16 local.get $5 + i32.const 0 + drop local.get $2 i32.store offset=4 local.get $0 @@ -9378,6 +9866,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 65535 i32.and @@ -9410,7 +9912,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 536870904 + i32.const 1073741808 + i32.const 1 + i32.shr_u i32.gt_u if i32.const 192 @@ -9482,6 +9986,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -9530,6 +10036,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 1 @@ -9771,6 +10279,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -9899,6 +10409,20 @@ local.get $10 i32.load16_u local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.5 @@ -9988,6 +10512,20 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $3 i32.const 65535 i32.and @@ -10002,6 +10540,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store16 offset=2 @@ -10053,9 +10593,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store16 local.get $5 + i32.const 0 + drop local.get $2 i32.store16 offset=2 local.get $0 @@ -10101,6 +10645,20 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 65535 i32.and @@ -10115,6 +10673,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -10659,14 +11221,32 @@ block $~lib/util/hash/HASH|inlined.2 (result i32) local.get $1 local.set $2 - local.get $2 - call $~lib/util/hash/hash32 - br $~lib/util/hash/HASH|inlined.2 - end - call $~lib/map/Map#find - i32.const 0 - i32.ne - ) + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + call $~lib/util/hash/hash32 + br $~lib/util/hash/HASH|inlined.2 + end + call $~lib/map/Map#find + i32.const 0 + i32.ne + ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -10675,6 +11255,24 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.3 @@ -10838,6 +11436,24 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.4 @@ -10850,6 +11466,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -11490,6 +12110,24 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 @@ -11574,6 +12212,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.2 @@ -11663,6 +12319,24 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.1 @@ -11675,6 +12349,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -11726,9 +12402,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store local.get $5 + i32.const 0 + drop local.get $2 i32.store offset=4 local.get $0 @@ -11768,6 +12448,24 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.3 @@ -11798,7 +12496,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 192 @@ -11870,6 +12570,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -11918,6 +12620,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 2 @@ -12159,6 +12863,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -12285,6 +12991,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.5 @@ -12374,6 +13098,24 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.4 @@ -12386,6 +13128,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -12437,9 +13181,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store local.get $5 + i32.const 0 + drop local.get $2 i32.store offset=4 local.get $0 @@ -12485,6 +13233,24 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.6 @@ -12497,6 +13263,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -13225,6 +13995,28 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.0 @@ -13310,6 +14102,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.2 @@ -13400,6 +14214,28 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.1 @@ -13412,6 +14248,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=8 @@ -13463,10 +14301,14 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i64.store local.get $5 - local.get $2 + i32.const 0 + drop + local.get $2 i32.store offset=8 local.get $0 local.get $0 @@ -13505,6 +14347,28 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.3 @@ -13535,7 +14399,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 + i32.const 1073741808 + i32.const 3 + i32.shr_u i32.gt_u if i32.const 192 @@ -13607,6 +14473,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -13655,6 +14523,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 3 @@ -13896,6 +14766,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) @@ -14023,6 +14895,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.5 @@ -14113,6 +15007,28 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.4 @@ -14125,6 +15041,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i64.store offset=8 @@ -14176,9 +15094,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i64.store local.get $5 + i32.const 0 + drop local.get $2 i64.store offset=8 local.get $0 @@ -14225,6 +15147,28 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.6 @@ -14237,6 +15181,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=12 @@ -14885,6 +15833,28 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.0 @@ -14970,6 +15940,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.2 @@ -15060,6 +16052,28 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.1 @@ -15072,6 +16086,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=8 @@ -15123,9 +16139,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i64.store local.get $5 + i32.const 0 + drop local.get $2 i32.store offset=8 local.get $0 @@ -15165,6 +16185,28 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.3 @@ -15195,7 +16237,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 + i32.const 1073741808 + i32.const 3 + i32.shr_u i32.gt_u if i32.const 192 @@ -15267,6 +16311,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -15315,6 +16361,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 3 @@ -15556,6 +16604,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) @@ -15683,6 +16733,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.5 @@ -15773,6 +16845,28 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.4 @@ -15785,6 +16879,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i64.store offset=8 @@ -15836,9 +16932,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i64.store local.get $5 + i32.const 0 + drop local.get $2 i64.store offset=8 local.get $0 @@ -15885,6 +16985,28 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.6 @@ -15897,6 +17019,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=12 @@ -16545,9 +17671,19 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 - local.get $2 - i32.reinterpret_f32 - call $~lib/util/hash/hash32 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + local.get $2 + i32.reinterpret_f32 + call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 end call $~lib/map/Map#find @@ -16631,6 +17767,16 @@ local.get $10 f32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -16722,6 +17868,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -16735,6 +17891,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=4 @@ -16786,9 +17944,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 f32.store local.get $5 + i32.const 0 + drop local.get $2 i32.store offset=4 local.get $0 @@ -16828,6 +17990,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -16859,7 +18031,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 192 @@ -16931,6 +18105,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -16979,6 +18155,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 2 @@ -17220,6 +18398,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) @@ -17347,6 +18527,16 @@ local.get $10 f32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -17438,6 +18628,16 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -17451,6 +18651,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 f32.store offset=4 @@ -17502,9 +18704,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 f32.store local.get $5 + i32.const 0 + drop local.get $2 f32.store offset=4 local.get $0 @@ -17551,6 +18757,16 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -17564,6 +18780,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -18212,6 +19432,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -18298,6 +19532,20 @@ local.get $10 f64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -18389,6 +19637,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -18402,6 +19664,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 i32.store offset=8 @@ -18453,9 +19717,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 f64.store local.get $5 + i32.const 0 + drop local.get $2 i32.store offset=8 local.get $0 @@ -18495,6 +19763,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -18526,7 +19808,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 + i32.const 1073741808 + i32.const 3 + i32.shr_u i32.gt_u if i32.const 192 @@ -18598,6 +19882,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -18646,6 +19932,8 @@ local.get $0 i32.load offset=12 local.set $2 + i32.const 0 + drop local.get $0 local.get $1 i32.const 3 @@ -18887,6 +20175,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) @@ -19014,6 +20304,20 @@ local.get $10 f64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -19105,6 +20409,20 @@ block $~lib/util/hash/HASH|inlined.4 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $3 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -19118,6 +20436,8 @@ local.set $5 local.get $5 if + i32.const 0 + drop local.get $5 local.get $2 f64.store offset=8 @@ -19169,9 +20489,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 f64.store local.get $5 + i32.const 0 + drop local.get $2 f64.store offset=8 local.get $0 @@ -19218,6 +20542,20 @@ block $~lib/util/hash/HASH|inlined.6 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -19231,6 +20569,10 @@ i32.const 0 return end + i32.const 0 + drop + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=12 @@ -19768,6 +21110,8 @@ call $start:std/map ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/decrement (param $0 i32) @@ -19780,8 +21124,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -19805,6 +21153,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -19822,6 +21174,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -19834,6 +21188,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -19854,6 +21210,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -19880,17 +21240,28 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -19905,6 +21276,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -19918,6 +21296,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -19931,11 +21316,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -19950,6 +21344,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -19963,11 +21364,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -19982,6 +21392,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -19995,11 +21412,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20014,6 +21440,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -20027,11 +21460,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20046,6 +21488,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -20059,11 +21508,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20078,6 +21536,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -20091,11 +21556,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20110,6 +21584,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -20123,11 +21604,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20142,6 +21632,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit @@ -20155,11 +21652,20 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -20174,6 +21680,13 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index e207106af8..3db70991b6 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -342,6 +342,10 @@ f64.ne return end + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 local.get $1 local.get $2 @@ -570,6 +574,14 @@ f32.ne return end + i32.const 4 + i32.const 8 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 local.get $1 local.get $2 @@ -1103,7 +1115,9 @@ local.get $2 i32.const 1 i32.shl - i32.const 2034237440 + i32.const 1017118720 + i32.const 1 + i32.shl i32.lt_u if local.get $0 @@ -1300,6 +1314,10 @@ (local $16 i64) (local $17 f64) (local $18 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -1309,7 +1327,9 @@ local.get $2 i64.const 4606619468846596096 i64.sub - i64.const 854320534781952 + i64.const 4607473789381378048 + i64.const 4606619468846596096 + i64.sub i64.lt_u if local.get $1 @@ -1419,7 +1439,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 @@ -1436,7 +1458,8 @@ br $~lib/util/math/log_lut|inlined.0 end local.get $2 - i64.const 9218868437227405312 + f64.const inf + i64.reinterpret_f64 i64.eq if local.get $1 @@ -1609,7 +1632,9 @@ i64.and local.set $1 local.get $1 - i64.const 1024 + i64.const 1023 + i64.const 1 + i64.add i64.lt_u if local.get $0 @@ -1634,7 +1659,9 @@ return end local.get $1 - i64.const 1049 + i64.const 1023 + i64.const 26 + i64.add i64.lt_u if f64.const 2 @@ -1741,7 +1768,9 @@ local.get $1 i32.const 1 i32.shl - i32.const 1728053248 + i32.const 864026624 + i32.const 1 + i32.shl i32.lt_u if local.get $0 @@ -1906,6 +1935,10 @@ (local $11 f64) (local $12 f64) (local $13 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/logf_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -1915,7 +1948,9 @@ local.get $2 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u if local.get $2 @@ -2069,7 +2104,11 @@ i32.and local.set $2 local.get $2 - i32.const 1073741824 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add i32.lt_u if local.get $0 @@ -2088,7 +2127,11 @@ return end local.get $2 - i32.const 1166016512 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add i32.lt_u if f32.const 2 @@ -2423,7 +2466,9 @@ f64.reinterpret_i64 local.set $3 local.get $2 - i64.const 1049 + i64.const 1023 + i64.const 26 + i64.add i64.ge_u if local.get $3 @@ -2433,7 +2478,9 @@ local.set $3 else local.get $2 - i64.const 1024 + i64.const 1023 + i64.const 1 + i64.add i64.ge_u if f64.const 2 @@ -2454,7 +2501,9 @@ local.set $3 else local.get $2 - i64.const 997 + i64.const 1023 + i64.const 26 + i64.sub i64.ge_u if local.get $3 @@ -2516,7 +2565,11 @@ f32.reinterpret_i32 local.set $2 local.get $1 - i32.const 1166016512 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.add i32.ge_u if local.get $2 @@ -2526,7 +2579,11 @@ local.set $2 else local.get $1 - i32.const 1073741824 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.add i32.ge_u if f32.const 2 @@ -2547,7 +2604,11 @@ local.set $2 else local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.ge_u if local.get $2 @@ -3118,11 +3179,15 @@ f64.abs local.set $3 local.get $2 - i64.const 1022 + i64.const 1023 + i64.const 1 + i64.sub i64.lt_u if local.get $2 - i64.const 991 + i64.const 1023 + i64.const 32 + i64.sub i64.ge_u if f64.const 0.5 @@ -3194,11 +3259,19 @@ f32.abs local.set $2 local.get $1 - i32.const 1056964608 + i32.const 1065353216 + i32.const 1 + i32.const 23 + i32.shl + i32.sub i32.lt_u if local.get $1 - i32.const 796917760 + i32.const 1065353216 + i32.const 32 + i32.const 23 + i32.shl + i32.sub i32.ge_u if f32.const 0.5 @@ -3444,7 +3517,9 @@ unreachable end local.get $3 - i32.const 67108864 + i32.const 64 + i32.const 20 + i32.shl i32.add local.get $5 i32.lt_u @@ -3476,7 +3551,9 @@ i32.and if (result i32) local.get $5 - i32.const 67108864 + i32.const 64 + i32.const 20 + i32.shl i32.add local.get $3 i32.lt_u @@ -3742,7 +3819,9 @@ unreachable end local.get $2 - i32.const 218103808 + i32.const 26 + i32.const 23 + i32.shl i32.add local.get $3 i32.lt_u @@ -3774,7 +3853,9 @@ i32.and if (result i32) local.get $3 - i32.const 218103808 + i32.const 26 + i32.const 23 + i32.shl i32.add local.get $2 i32.lt_u @@ -4710,6 +4791,10 @@ i32.const 2147483647 i32.and local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $12 i32.const 1073928572 i32.lt_u @@ -5204,6 +5289,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u @@ -6076,6 +6165,10 @@ (local $19 f64) (local $20 f64) (local $21 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/exp_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -6358,7 +6451,11 @@ i32.lt_u if local.get $2 - i32.const 1045430272 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub i32.lt_u if f64.const 1 @@ -6750,6 +6847,10 @@ (local $9 f64) (local $10 f64) (local $11 i64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/expf_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -6786,7 +6887,8 @@ br $~lib/util/math/expf_lut|inlined.0 end local.get $1 - f32.const 88.72283172607422 + i32.const 1118925335 + f32.reinterpret_i32 f32.gt if local.get $1 @@ -6795,7 +6897,8 @@ br $~lib/util/math/expf_lut|inlined.0 end local.get $1 - f32.const -103.97207641601562 + i32.const -1026559564 + f32.reinterpret_i32 f32.lt if f32.const 0 @@ -6888,7 +6991,11 @@ i32.lt_u if local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.lt_u if f32.const 1 @@ -7569,7 +7676,9 @@ f64.const 1 local.set $7 local.get $5 - i32.const 1533 + i32.const 1023 + i32.const 510 + i32.add i32.gt_s if f64.const 5260135901548373507240989e186 @@ -7584,7 +7693,9 @@ local.set $1 else local.get $6 - i32.const 573 + i32.const 1023 + i32.const 450 + i32.sub i32.lt_s if f64.const 1.90109156629516e-211 @@ -7720,14 +7831,18 @@ f32.reinterpret_i32 local.set $1 local.get $3 - i32.const 2139095040 + i32.const 255 + i32.const 23 + i32.shl i32.eq if local.get $1 return end local.get $2 - i32.const 2139095040 + i32.const 255 + i32.const 23 + i32.shl i32.ge_u if (result i32) i32.const 1 @@ -7742,7 +7857,9 @@ local.get $2 local.get $3 i32.sub - i32.const 209715200 + i32.const 25 + i32.const 23 + i32.shl i32.ge_u end if @@ -7754,7 +7871,11 @@ f32.const 1 local.set $5 local.get $2 - i32.const 1568669696 + i32.const 127 + i32.const 60 + i32.add + i32.const 23 + i32.shl i32.ge_u if f32.const 1237940039285380274899124e3 @@ -7769,7 +7890,11 @@ local.set $1 else local.get $3 - i32.const 562036736 + i32.const 127 + i32.const 60 + i32.sub + i32.const 23 + i32.shl i32.lt_u if f32.const 8.077935669463161e-28 @@ -8389,6 +8514,10 @@ (local $21 f64) (local $22 f64) (local $23 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 local.set $1 @@ -8398,7 +8527,9 @@ local.get $2 i64.const 4606800540372828160 i64.sub - i64.const 581272283906048 + i64.const 4607381812656734208 + i64.const 4606800540372828160 + i64.sub i64.lt_u if local.get $1 @@ -8502,7 +8633,9 @@ local.get $12 i32.const 16 i32.sub - i32.const 32736 + i32.const 32752 + i32.const 16 + i32.sub i32.ge_u if local.get $2 @@ -8748,6 +8881,10 @@ (local $13 f64) (local $14 f64) (local $15 f64) + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/log2f_lut|inlined.0 (result f32) local.get $0 local.set $1 @@ -8757,7 +8894,9 @@ local.get $2 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u if local.get $2 @@ -9637,6 +9776,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/pow_lut|inlined.0 (result f64) local.get $0 local.set $3 @@ -9661,7 +9804,9 @@ local.get $7 i64.const 1 i64.sub - i64.const 2046 + i64.const 2047 + i64.const 1 + i64.sub i64.ge_u if (result i32) i32.const 1 @@ -9671,7 +9816,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u end if @@ -9682,7 +9829,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $6 @@ -9758,7 +9907,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $3 @@ -9787,14 +9938,18 @@ br $~lib/util/math/checkint|inlined.0 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 br $~lib/util/math/checkint|inlined.0 end i64.const 1 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add local.get $11 i64.sub i64.shl @@ -9868,7 +10023,9 @@ br $~lib/util/math/checkint|inlined.1 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 @@ -9939,7 +10096,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u if local.get $5 @@ -10603,6 +10762,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/powf_lut|inlined.0 (result f32) local.get $0 local.set $3 @@ -10621,7 +10784,9 @@ local.get $5 i32.const 8388608 i32.sub - i32.const 2130706432 + i32.const 2139095040 + i32.const 8388608 + i32.sub i32.ge_u local.get $6 local.set $8 @@ -10630,7 +10795,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u i32.const 0 i32.ne @@ -10658,7 +10827,9 @@ local.get $5 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u if (result i32) i32.const 1 @@ -10666,7 +10837,9 @@ local.get $6 i32.const 1 i32.shl - i32.const -16777216 + i32.const 2139095040 + i32.const 1 + i32.shl i32.gt_u end if @@ -10678,7 +10851,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.eq if f32.const nan:0x400000 @@ -10687,7 +10862,9 @@ local.get $5 i32.const 1 i32.shl - i32.const 2130706432 + i32.const 1065353216 + i32.const 1 + i32.shl i32.lt_u local.get $6 i32.const 31 @@ -10710,7 +10887,11 @@ i32.shl i32.const 1 i32.sub - i32.const -16777217 + i32.const 2139095040 + i32.const 1 + i32.shl + i32.const 1 + i32.sub i32.ge_u if local.get $3 @@ -10738,14 +10919,18 @@ br $~lib/util/math/checkintf|inlined.0 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 br $~lib/util/math/checkintf|inlined.0 end i32.const 1 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add local.get $10 i32.sub i32.shl @@ -10811,7 +10996,9 @@ br $~lib/util/math/checkintf|inlined.1 end local.get $10 - i32.const 150 + i32.const 127 + i32.const 23 + i32.add i32.gt_u if i32.const 2 @@ -11379,6 +11566,10 @@ block $~lib/math/NativeMath.sign|inlined.0 (result f64) local.get $0 local.set $4 + i32.const 0 + i32.const 0 + i32.gt_s + drop local.get $4 f64.const 0 f64.gt @@ -11422,6 +11613,10 @@ block $~lib/math/NativeMathf.sign|inlined.0 (result f32) local.get $0 local.set $4 + i32.const 0 + i32.const 0 + i32.gt_s + drop local.get $4 f32.const 0 f32.gt @@ -12237,6 +12432,10 @@ i32.const 2147483647 i32.and local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $12 i32.const 1073928572 i32.lt_u @@ -12732,6 +12931,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u @@ -13295,7 +13498,11 @@ i32.lt_u if local.get $3 - i32.const 1045430272 + i32.const 1072693248 + i32.const 26 + i32.const 20 + i32.shl + i32.sub i32.lt_u if local.get $0 @@ -13411,7 +13618,11 @@ i32.lt_u if local.get $1 - i32.const 964689920 + i32.const 1065353216 + i32.const 12 + i32.const 23 + i32.shl + i32.sub i32.lt_u if local.get $0 @@ -13802,6 +14013,10 @@ i32.const 2147483647 i32.and local.set $7 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $7 i32.const 1073928572 i32.lt_u @@ -14177,6 +14392,10 @@ f32.demote_f64 return end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 1081824209 i32.le_u @@ -15188,6 +15407,10 @@ i32.const 2147483647 i32.and local.set $12 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $12 i32.const 1073928572 i32.lt_u @@ -15630,6 +15853,10 @@ (local $3 i64) (local $4 i64) i32.const 0 + i32.const 0 + i32.gt_s + drop + i32.const 0 local.set $1 local.get $0 i64.reinterpret_f64 @@ -15641,7 +15868,9 @@ i64.and local.set $3 local.get $3 - i64.const 1053 + i64.const 1023 + i64.const 30 + i64.add i64.le_u if local.get $0 @@ -15649,7 +15878,11 @@ local.set $1 else local.get $3 - i64.const 1106 + i64.const 1023 + i64.const 30 + i64.add + i64.const 53 + i64.add i64.le_u if local.get $2 @@ -15739,6 +15972,10 @@ (local $4 i32) i64.const 1 local.set $2 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 0 i32.lt_s diff --git a/tests/compiler/std/new.untouched.wat b/tests/compiler/std/new.untouched.wat index ff4475b815..4d2584d27a 100644 --- a/tests/compiler/std/new.untouched.wat +++ b/tests/compiler/std/new.untouched.wat @@ -109,6 +109,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/std/object-literal-omitted.untouched.wat b/tests/compiler/std/object-literal-omitted.untouched.wat index d1b9c65891..32ab151c8a 100644 --- a/tests/compiler/std/object-literal-omitted.untouched.wat +++ b/tests/compiler/std/object-literal-omitted.untouched.wat @@ -46,6 +46,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -64,6 +66,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -116,6 +120,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -255,6 +261,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -268,6 +276,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -361,6 +371,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -417,6 +429,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -436,6 +450,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -490,6 +506,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -600,6 +618,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -637,6 +657,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -668,6 +690,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -688,7 +712,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -882,6 +910,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -983,6 +1013,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1055,6 +1087,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1113,6 +1147,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1197,6 +1233,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1219,7 +1257,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1288,6 +1328,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1311,9 +1353,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1330,6 +1376,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1349,6 +1397,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1361,6 +1411,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1392,6 +1444,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 0 + drop local.get $4 ) (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) @@ -1430,6 +1484,10 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1692,6 +1750,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -1985,6 +2047,8 @@ call $start:std/object-literal-omitted ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -2000,6 +2064,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 0 + drop ) (func $~lib/rt/pure/decrement (param $0 i32) (local $1 i32) @@ -2011,6 +2077,10 @@ i32.const 268435455 i32.and local.set $2 + i32.const 0 + drop + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2034,6 +2104,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -2051,6 +2125,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -2063,6 +2139,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -2083,6 +2161,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/std/object-literal-unmanaged.untouched.wat b/tests/compiler/std/object-literal-unmanaged.untouched.wat index 2d65d35766..fe76b1da78 100644 --- a/tests/compiler/std/object-literal-unmanaged.untouched.wat +++ b/tests/compiler/std/object-literal-unmanaged.untouched.wat @@ -38,6 +38,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -56,6 +58,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -108,6 +112,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -247,6 +253,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -260,6 +268,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -353,6 +363,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -409,6 +421,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -428,6 +442,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -482,6 +498,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -592,6 +610,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -629,6 +649,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -660,6 +682,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -680,7 +704,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -874,6 +902,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -975,6 +1005,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1047,6 +1079,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1105,6 +1139,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1189,6 +1225,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1211,7 +1249,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1280,6 +1320,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1303,9 +1345,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1322,6 +1368,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1341,6 +1389,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1353,6 +1403,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1384,6 +1436,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1469,6 +1523,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -1499,6 +1555,8 @@ call $start:std/object-literal-unmanaged ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) ) diff --git a/tests/compiler/std/object-literal.untouched.wat b/tests/compiler/std/object-literal.untouched.wat index e216e917fb..c3d6b6838d 100644 --- a/tests/compiler/std/object-literal.untouched.wat +++ b/tests/compiler/std/object-literal.untouched.wat @@ -112,6 +112,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -162,6 +164,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u diff --git a/tests/compiler/std/object.untouched.wat b/tests/compiler/std/object.untouched.wat index 45d8500bc8..17c86a1a96 100644 --- a/tests/compiler/std/object.untouched.wat +++ b/tests/compiler/std/object.untouched.wat @@ -19,10 +19,16 @@ (export "memory" (memory $0)) (start $~start) (func $~lib/object/Object.is (param $0 f64) (param $1 f64) (result i32) + i32.const 1 + drop local.get $0 local.get $1 f64.eq if + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 i64.reinterpret_f64 local.get $1 @@ -40,10 +46,16 @@ return ) (func $~lib/object/Object.is (param $0 f32) (param $1 f32) (result i32) + i32.const 1 + drop local.get $0 local.get $1 f32.eq if + i32.const 4 + i32.const 8 + i32.eq + drop local.get $0 i32.reinterpret_f32 local.get $1 @@ -61,11 +73,15 @@ return ) (func $~lib/object/Object.is (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + drop local.get $0 local.get $1 i32.eq ) (func $~lib/object/Object.is (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + drop local.get $0 i32.const 0 i32.ne @@ -113,6 +129,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -291,6 +311,8 @@ local.get $1 call $~lib/rt/stub/__retain local.set $1 + i32.const 0 + drop local.get $0 local.get $1 call $~lib/string/String.__eq @@ -309,6 +331,8 @@ local.get $1 call $~lib/rt/stub/__retain local.set $1 + i32.const 0 + drop local.get $0 local.get $1 call $~lib/string/String.__eq diff --git a/tests/compiler/std/operator-overloading.untouched.wat b/tests/compiler/std/operator-overloading.untouched.wat index 244fcce16a..3dd5441852 100644 --- a/tests/compiler/std/operator-overloading.untouched.wat +++ b/tests/compiler/std/operator-overloading.untouched.wat @@ -182,6 +182,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -449,6 +451,10 @@ return end end + i32.const 0 + i32.const 1 + i32.lt_s + drop block $~lib/util/math/pow_lut|inlined.0 (result f64) local.get $0 local.set $3 @@ -473,7 +479,9 @@ local.get $7 i64.const 1 i64.sub - i64.const 2046 + i64.const 2047 + i64.const 1 + i64.sub i64.ge_u if (result i32) i32.const 1 @@ -483,7 +491,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u end if @@ -494,7 +504,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $6 @@ -570,7 +582,9 @@ i64.shl i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const -9007199254740992 + i64.const 1 + i64.sub i64.ge_u if local.get $3 @@ -599,14 +613,18 @@ br $~lib/util/math/checkint|inlined.0 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 br $~lib/util/math/checkint|inlined.0 end i64.const 1 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add local.get $11 i64.sub i64.shl @@ -680,7 +698,9 @@ br $~lib/util/math/checkint|inlined.1 end local.get $11 - i64.const 1075 + i64.const 1023 + i64.const 52 + i64.add i64.gt_u if i32.const 2 @@ -751,7 +771,9 @@ i64.and i64.const 958 i64.sub - i64.const 128 + i64.const 1086 + i64.const 958 + i64.sub i64.ge_u if local.get $5 diff --git a/tests/compiler/std/pointer.untouched.wat b/tests/compiler/std/pointer.untouched.wat index ac39c3f72b..555301f399 100644 --- a/tests/compiler/std/pointer.untouched.wat +++ b/tests/compiler/std/pointer.untouched.wat @@ -39,6 +39,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1275,6 +1279,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -1300,6 +1308,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1395,6 +1407,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1531,6 +1547,8 @@ block $std/pointer/Pointer#get:value|inlined.0 (result i32) global.get $std/pointer/one local.set $0 + i32.const 1 + drop local.get $0 br $std/pointer/Pointer#get:value|inlined.0 end @@ -1539,6 +1557,8 @@ block $std/pointer/Pointer#get:value|inlined.1 (result i32) global.get $std/pointer/one local.set $1 + i32.const 1 + drop local.get $1 br $std/pointer/Pointer#get:value|inlined.1 end @@ -1812,10 +1832,16 @@ block $std/pointer/Pointer#get:value|inlined.6 (result i32) global.get $std/pointer/two local.set $0 + i32.const 1 + drop local.get $0 br $std/pointer/Pointer#get:value|inlined.6 end local.set $6 + i32.const 1 + drop + i32.const 0 + drop local.get $6 i32.const 0 i32.eq @@ -2097,6 +2123,8 @@ local.set $0 f32.const 1.399999976158142 local.set $8 + i32.const 0 + drop local.get $0 local.get $8 f32.store diff --git a/tests/compiler/std/polyfills.untouched.wat b/tests/compiler/std/polyfills.untouched.wat index 974b56ece1..6e3c74795c 100644 --- a/tests/compiler/std/polyfills.untouched.wat +++ b/tests/compiler/std/polyfills.untouched.wat @@ -10,14 +10,48 @@ (export "memory" (memory $0)) (start $~start) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 1 + i32.const 4 + i32.eq + drop + i32.const 1 + i32.const 8 + i32.eq + drop local.get $0 return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 1 + i32.const 4 + i32.eq + drop + i32.const 1 + i32.const 8 + i32.eq + drop local.get $0 return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -32,6 +66,12 @@ return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -48,6 +88,16 @@ return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -62,6 +112,16 @@ return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -79,6 +139,20 @@ (local $1 i64) (local $2 i64) (local $3 i64) + i32.const 1 + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 i64.const 8 i64.shr_u @@ -118,6 +192,20 @@ (local $1 i64) (local $2 i64) (local $3 i64) + i32.const 1 + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $0 i64.const 8 i64.shr_u @@ -154,6 +242,16 @@ return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -168,6 +266,16 @@ return ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) + i32.const 1 + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const -16711936 i32.and @@ -182,14 +290,61 @@ return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 1 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 1 + i32.const 4 + i32.eq + drop local.get $0 return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 1 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 1 + i32.const 4 + i32.eq + drop local.get $0 return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 2 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -204,6 +359,19 @@ return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 2 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -220,6 +388,23 @@ return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const 8 i32.shl @@ -238,6 +423,23 @@ return ) (func $~lib/polyfills/bswap16 (param $0 i32) (result i32) + i32.const 1 + if (result i32) + i32.const 4 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $0 i32.const 8 i32.shl diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index af9ef50690..3aa89d9711 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -59,6 +59,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -77,6 +79,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -129,6 +133,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -268,6 +274,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -281,6 +289,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -374,6 +384,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -430,6 +442,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -449,6 +463,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -503,6 +519,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -613,6 +631,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -650,6 +670,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -681,6 +703,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -701,7 +725,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -895,6 +923,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -996,6 +1026,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1068,6 +1100,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1126,6 +1160,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1210,6 +1246,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1232,7 +1270,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1301,6 +1341,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1324,9 +1366,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1343,6 +1389,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1362,6 +1410,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1374,6 +1424,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1405,6 +1457,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1445,8 +1499,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -1490,6 +1548,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1856,6 +1918,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -1940,6 +2012,16 @@ local.get $10 i32.load8_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $12 call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.2 @@ -2028,6 +2110,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -2089,6 +2181,8 @@ i32.add local.set $4 local.get $4 + i32.const 0 + drop local.get $1 i32.store8 local.get $0 @@ -2130,6 +2224,8 @@ (local $6 i32) local.get $1 i32.const 1073741808 + i32.const 0 + i32.shr_u i32.gt_u if i32.const 192 @@ -3289,6 +3385,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3314,6 +3414,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3409,6 +3513,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3503,6 +3611,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3521,7 +3631,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -3616,6 +3728,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -3697,6 +3811,8 @@ end ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -3833,6 +3949,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -3845,6 +3963,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 24 i32.shl @@ -3861,6 +3989,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -4396,6 +4526,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -4478,6 +4618,16 @@ local.get $10 i32.load8_u local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $12 call $~lib/util/hash/hash8 br $~lib/util/hash/HASH|inlined.2 @@ -4566,6 +4716,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -4625,6 +4785,8 @@ i32.add local.set $4 local.get $4 + i32.const 0 + drop local.get $1 i32.store8 local.get $0 @@ -4666,6 +4828,8 @@ (local $6 i32) local.get $1 i32.const 1073741808 + i32.const 0 + i32.shr_u i32.gt_u if i32.const 192 @@ -4737,6 +4901,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -4873,6 +5039,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -4885,6 +5053,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop local.get $2 i32.const 255 i32.and @@ -4899,6 +5077,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -5450,6 +5630,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -5534,6 +5728,20 @@ local.get $10 i32.load16_s local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.2 @@ -5622,6 +5830,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -5683,6 +5905,8 @@ i32.add local.set $4 local.get $4 + i32.const 0 + drop local.get $1 i32.store16 local.get $0 @@ -5723,7 +5947,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 536870904 + i32.const 1073741808 + i32.const 1 + i32.shr_u i32.gt_u if i32.const 192 @@ -5795,6 +6021,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -5931,6 +6159,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -5943,6 +6173,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 16 i32.shl @@ -5959,6 +6203,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -6494,6 +6740,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 65535 i32.and @@ -6576,6 +6836,20 @@ local.get $10 i32.load16_u local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $12 call $~lib/util/hash/hash16 br $~lib/util/hash/HASH|inlined.2 @@ -6664,12 +6938,26 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 - local.get $2 - i32.const 65535 - i32.and - call $~lib/util/hash/hash16 - br $~lib/util/hash/HASH|inlined.1 - end + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + local.get $2 + i32.const 65535 + i32.and + call $~lib/util/hash/hash16 + br $~lib/util/hash/HASH|inlined.1 + end local.set $3 local.get $0 local.get $1 @@ -6723,6 +7011,8 @@ i32.add local.set $4 local.get $4 + i32.const 0 + drop local.get $1 i32.store16 local.get $0 @@ -6763,7 +7053,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 536870904 + i32.const 1073741808 + i32.const 1 + i32.shr_u i32.gt_u if i32.const 192 @@ -6835,6 +7127,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -6971,6 +7265,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -6983,6 +7279,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop local.get $2 i32.const 65535 i32.and @@ -6997,6 +7307,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -7564,6 +7876,24 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 @@ -7644,6 +7974,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.2 @@ -7732,6 +8080,24 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.1 @@ -7789,6 +8155,8 @@ i32.add local.set $4 local.get $4 + i32.const 0 + drop local.get $1 i32.store local.get $0 @@ -7829,7 +8197,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 192 @@ -7901,6 +8271,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -8037,6 +8409,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -8049,6 +8423,24 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.3 @@ -8061,6 +8453,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -8574,6 +8968,24 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 @@ -8654,6 +9066,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.2 @@ -8742,6 +9172,24 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.1 @@ -8799,6 +9247,8 @@ i32.add local.set $4 local.get $4 + i32.const 0 + drop local.get $1 i32.store local.get $0 @@ -8839,7 +9289,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 192 @@ -8911,6 +9363,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -9047,6 +9501,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (result i32) @@ -9059,6 +9515,24 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.3 @@ -9071,6 +9545,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -9672,6 +10148,28 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.0 @@ -9753,6 +10251,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.2 @@ -9842,6 +10362,28 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.1 @@ -9899,6 +10441,8 @@ i32.add local.set $4 local.get $4 + i32.const 0 + drop local.get $1 i64.store local.get $0 @@ -9939,7 +10483,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 + i32.const 1073741808 + i32.const 3 + i32.shr_u i32.gt_u if i32.const 192 @@ -10011,6 +10557,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -10147,6 +10695,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (result i32) @@ -10160,6 +10710,28 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.3 @@ -10172,6 +10744,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -10686,6 +11260,28 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.0 @@ -10767,6 +11363,28 @@ local.get $10 i64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.2 @@ -10856,6 +11474,28 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.1 @@ -10913,6 +11553,8 @@ i32.add local.set $4 local.get $4 + i32.const 0 + drop local.get $1 i64.store local.get $0 @@ -10953,7 +11595,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 + i32.const 1073741808 + i32.const 3 + i32.shr_u i32.gt_u if i32.const 192 @@ -11025,6 +11669,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -11161,6 +11807,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (result i32) @@ -11174,6 +11822,28 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 8 + i32.const 1 + i32.eq + drop + i32.const 8 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 call $~lib/util/hash/hash64 br $~lib/util/hash/HASH|inlined.3 @@ -11186,6 +11856,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -11700,6 +12372,16 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -11782,6 +12464,16 @@ local.get $10 f32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -11872,6 +12564,16 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -11930,6 +12632,8 @@ i32.add local.set $4 local.get $4 + i32.const 0 + drop local.get $1 f32.store local.get $0 @@ -11970,7 +12674,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 268435452 + i32.const 1073741808 + i32.const 2 + i32.shr_u i32.gt_u if i32.const 192 @@ -12042,6 +12748,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -12178,6 +12886,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (result i32) @@ -12191,6 +12901,16 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 i32.reinterpret_f32 call $~lib/util/hash/hash32 @@ -12204,6 +12924,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=4 @@ -12718,6 +13440,20 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -12800,6 +13536,20 @@ local.get $10 f64.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $12 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -12890,6 +13640,20 @@ block $~lib/util/hash/HASH|inlined.1 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -12948,6 +13712,8 @@ i32.add local.set $4 local.get $4 + i32.const 0 + drop local.get $1 f64.store local.get $0 @@ -12988,7 +13754,9 @@ (local $5 i32) (local $6 i32) local.get $1 - i32.const 134217726 + i32.const 1073741808 + i32.const 3 + i32.shr_u i32.gt_u if i32.const 192 @@ -13060,6 +13828,8 @@ local.get $0 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -13196,6 +13966,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) (result i32) @@ -13209,6 +13981,20 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop local.get $2 i64.reinterpret_f64 call $~lib/util/hash/hash64 @@ -13222,6 +14008,8 @@ i32.const 0 return end + i32.const 0 + drop local.get $3 local.get $3 i32.load offset=8 @@ -13625,6 +14413,8 @@ call $start:std/set ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/decrement (param $0 i32) @@ -13637,8 +14427,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -13662,6 +14456,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -13679,6 +14477,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -13691,6 +14491,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -13711,6 +14513,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -13737,11 +14543,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13756,11 +14566,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13775,11 +14589,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13794,11 +14612,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13813,11 +14635,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13832,11 +14658,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13851,11 +14681,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13870,11 +14704,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13889,11 +14727,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 @@ -13908,11 +14750,15 @@ local.get $0 i32.load offset=8 local.set $2 + i32.const 0 + drop local.get $2 local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 diff --git a/tests/compiler/std/simd.untouched.wat b/tests/compiler/std/simd.untouched.wat index 237ebf5846..fa8c8cf7e4 100644 --- a/tests/compiler/std/simd.untouched.wat +++ b/tests/compiler/std/simd.untouched.wat @@ -1,6 +1,15 @@ (module + (type $none_=>_none (func)) (memory $0 0) (table $0 1 funcref) (global $~lib/ASC_FEATURE_SIMD i32 (i32.const 0)) (export "memory" (memory $0)) + (start $~start) + (func $start:std/simd + i32.const 0 + drop + ) + (func $~start + call $start:std/simd + ) ) diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index 2a227405d9..772a7ca083 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -68,6 +68,8 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/rt/stub/maybeGrowMemory (param $0 i32) @@ -166,6 +168,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -1220,6 +1224,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -1245,6 +1253,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1340,6 +1352,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -1455,6 +1471,8 @@ local.get $2 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.load offset=4 i32.const 1 @@ -1560,6 +1578,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -1816,6 +1838,8 @@ end ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -1890,9 +1914,13 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -1967,9 +1995,13 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f32) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 @@ -2044,9 +2076,13 @@ local.get $1 call $~lib/array/Array#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/array/Array#__unchecked_set (param $0 i32) (param $1 i32) (param $2 f64) + i32.const 0 + drop local.get $0 i32.load offset=4 local.get $1 diff --git a/tests/compiler/std/staticarray.untouched.wat b/tests/compiler/std/staticarray.untouched.wat index 11977d43b1..2289b5b314 100644 --- a/tests/compiler/std/staticarray.untouched.wat +++ b/tests/compiler/std/staticarray.untouched.wat @@ -71,9 +71,13 @@ local.get $1 call $~lib/staticarray/StaticArray#__unchecked_get local.set $2 + i32.const 0 + drop local.get $2 ) (func $~lib/staticarray/StaticArray#__unchecked_set (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop local.get $0 local.get $1 i32.const 2 @@ -114,6 +118,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -132,6 +138,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -184,6 +192,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -323,6 +333,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -336,6 +348,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -429,6 +443,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -485,6 +501,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -504,6 +522,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -558,6 +578,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -668,6 +690,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -705,6 +729,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -736,6 +762,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -756,7 +784,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -950,6 +982,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1051,6 +1085,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1123,6 +1159,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1181,6 +1219,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1265,6 +1305,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1287,7 +1329,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1356,6 +1400,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1379,9 +1425,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1398,6 +1448,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1417,6 +1469,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1429,6 +1483,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1460,6 +1516,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -2515,6 +2573,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2540,6 +2602,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2635,6 +2701,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2759,8 +2829,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -3063,6 +3137,8 @@ call $start:std/staticarray ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -3078,6 +3154,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3091,8 +3169,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -3116,6 +3198,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -3133,6 +3219,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -3145,6 +3233,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -3165,6 +3255,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -3183,13 +3277,16 @@ call $~lib/rt/pure/decrement ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 local.set $2 local.get $2 diff --git a/tests/compiler/std/string-casemapping.untouched.wat b/tests/compiler/std/string-casemapping.untouched.wat index 1221a47394..ab27443b30 100644 --- a/tests/compiler/std/string-casemapping.untouched.wat +++ b/tests/compiler/std/string-casemapping.untouched.wat @@ -240,8 +240,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -283,6 +287,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -301,6 +307,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -353,6 +361,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -492,6 +502,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -505,6 +517,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -598,6 +612,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -654,6 +670,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -673,6 +691,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -727,6 +747,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -837,6 +859,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -874,6 +898,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -905,6 +931,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -925,7 +953,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1119,6 +1151,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1220,6 +1254,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1292,6 +1328,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1350,6 +1388,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1434,6 +1474,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1456,7 +1498,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1525,6 +1569,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1548,9 +1594,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1567,6 +1617,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1586,6 +1638,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1598,6 +1652,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1629,6 +1685,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -2928,6 +2986,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2953,6 +3015,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3048,6 +3114,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3142,6 +3212,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -3160,7 +3232,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -3255,6 +3329,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -3347,6 +3423,10 @@ block $~lib/util/string/toUpper8|inlined.0 (result i32) local.get $8 local.set $9 + i32.const 0 + i32.const 0 + i32.gt_s + drop i32.const 1040 local.get $9 i32.add @@ -3358,7 +3438,9 @@ local.get $8 i32.const 55295 i32.sub - i32.const 1025 + i32.const 56320 + i32.const 55295 + i32.sub i32.lt_u if (result i32) local.get $6 @@ -3380,7 +3462,9 @@ local.get $9 i32.const 56319 i32.sub - i32.const 1025 + i32.const 57344 + i32.const 56319 + i32.sub i32.lt_u if local.get $8 @@ -3427,7 +3511,9 @@ local.get $8 i32.const 9424 i32.sub - i32.const 25 + i32.const 9449 + i32.const 9424 + i32.sub i32.le_u if local.get $2 @@ -3445,7 +3531,9 @@ local.get $8 i32.const 223 i32.sub - i32.const 64056 + i32.const 64279 + i32.const 223 + i32.sub i32.le_u if block $~lib/util/casemap/bsearch|inlined.0 (result i32) @@ -3661,6 +3749,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -3927,6 +4019,10 @@ block $~lib/util/string/toLower8|inlined.0 (result i32) local.get $6 local.set $7 + i32.const 0 + i32.const 0 + i32.gt_s + drop i32.const 5904 local.get $7 i32.add @@ -3938,7 +4034,9 @@ local.get $6 i32.const 55295 i32.sub - i32.const 1025 + i32.const 56320 + i32.const 55295 + i32.sub i32.lt_u if (result i32) local.get $4 @@ -3960,7 +4058,9 @@ local.get $7 i32.const 56319 i32.sub - i32.const 1025 + i32.const 57344 + i32.const 56319 + i32.sub i32.lt_u if local.get $6 @@ -4316,7 +4416,9 @@ local.get $6 i32.const 9398 i32.sub - i32.const 25 + i32.const 9423 + i32.const 9398 + i32.sub i32.le_u if local.get $2 @@ -4926,7 +5028,8 @@ return end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -4947,6 +5050,10 @@ local.set $5 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -4967,6 +5074,10 @@ local.set $7 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $7 local.get $4 @@ -4976,6 +5087,15 @@ call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop local.get $0 call $~lib/util/number/utoa64 return @@ -6780,6 +6900,8 @@ call $start:std/string-casemapping ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/decrement (param $0 i32) @@ -6792,8 +6914,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -6817,6 +6943,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -6834,6 +6964,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -6846,6 +6978,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -6866,6 +7000,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -6884,16 +7022,20 @@ call $~lib/rt/pure/decrement ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/std/string-encoding.untouched.wat b/tests/compiler/std/string-encoding.untouched.wat index 9541395880..5d623f85ed 100644 --- a/tests/compiler/std/string-encoding.untouched.wat +++ b/tests/compiler/std/string-encoding.untouched.wat @@ -71,8 +71,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -154,6 +158,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -172,6 +178,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -224,6 +232,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -363,6 +373,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -376,6 +388,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -469,6 +483,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -525,6 +541,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -544,6 +562,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -598,6 +618,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -708,6 +730,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -745,6 +769,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -776,6 +802,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -796,7 +824,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -990,6 +1022,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1091,6 +1125,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1163,6 +1199,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1221,6 +1259,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1305,6 +1345,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1327,7 +1369,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1396,6 +1440,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1419,9 +1465,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1438,6 +1488,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1457,6 +1509,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1469,6 +1523,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1500,6 +1556,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -2563,6 +2621,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2588,6 +2650,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2683,6 +2749,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3043,6 +3113,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -4152,6 +4226,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -4170,7 +4246,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -4265,6 +4343,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -4953,8 +5033,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -4978,6 +5062,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -4995,6 +5083,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -5007,6 +5097,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -5021,6 +5113,8 @@ end ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) @@ -5030,6 +5124,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index b5fe5021e4..31100b330b 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -435,8 +435,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -508,6 +512,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -728,6 +736,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -746,6 +756,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -798,6 +810,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -937,6 +951,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -950,6 +966,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -1043,6 +1061,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -1099,6 +1119,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -1118,6 +1140,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -1172,6 +1196,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -1282,6 +1308,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -1319,6 +1347,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -1350,6 +1380,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -1370,7 +1402,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1564,6 +1600,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1665,6 +1703,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1737,6 +1777,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1795,6 +1837,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1879,6 +1923,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1901,7 +1947,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1970,6 +2018,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1993,9 +2043,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -2012,6 +2066,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -2031,6 +2087,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -2043,6 +2101,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -2074,6 +2134,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -3484,6 +3546,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -3509,6 +3575,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -3604,6 +3674,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -4094,7 +4168,9 @@ local.get $0 i32.const 8192 i32.sub - i32.const 10 + i32.const 8202 + i32.const 8192 + i32.sub i32.le_u if i32.const 1 @@ -4396,6 +4472,8 @@ local.get $2 i32.eqz if + i32.const 1 + drop f64.const nan:0x8000000000000 local.set $3 local.get $0 @@ -4439,6 +4517,8 @@ local.tee $2 i32.eqz if + i32.const 1 + drop f64.const nan:0x8000000000000 local.set $3 local.get $0 @@ -4465,6 +4545,8 @@ local.tee $2 i32.eqz if + i32.const 1 + drop f64.const nan:0x8000000000000 local.set $3 local.get $0 @@ -4575,6 +4657,8 @@ i32.gt_s end if + i32.const 1 + drop f64.const nan:0x8000000000000 local.set $3 local.get $0 @@ -4613,7 +4697,9 @@ local.get $5 i32.const 65 i32.sub - i32.const 25 + i32.const 90 + i32.const 65 + i32.sub i32.le_u if local.get $5 @@ -4626,7 +4712,9 @@ local.get $5 i32.const 97 i32.sub - i32.const 25 + i32.const 122 + i32.const 97 + i32.sub i32.le_u if local.get $5 @@ -4699,6 +4787,8 @@ local.get $2 i32.eqz if + i32.const 0 + drop i32.const 0 local.set $3 local.get $0 @@ -4742,6 +4832,8 @@ local.tee $2 i32.eqz if + i32.const 0 + drop i32.const 0 local.set $3 local.get $0 @@ -4768,6 +4860,8 @@ local.tee $2 i32.eqz if + i32.const 0 + drop i32.const 0 local.set $3 local.get $0 @@ -4878,6 +4972,8 @@ i32.gt_s end if + i32.const 0 + drop i32.const 0 local.set $3 local.get $0 @@ -4916,7 +5012,9 @@ local.get $5 i32.const 65 i32.sub - i32.const 25 + i32.const 90 + i32.const 65 + i32.sub i32.le_u if local.get $5 @@ -4929,7 +5027,9 @@ local.get $5 i32.const 97 i32.sub - i32.const 25 + i32.const 122 + i32.const 97 + i32.sub i32.le_u if local.get $5 @@ -5001,6 +5101,8 @@ local.get $2 i32.eqz if + i32.const 0 + drop i64.const 0 local.set $3 local.get $0 @@ -5044,6 +5146,8 @@ local.tee $2 i32.eqz if + i32.const 0 + drop i64.const 0 local.set $3 local.get $0 @@ -5070,6 +5174,8 @@ local.tee $2 i32.eqz if + i32.const 0 + drop i64.const 0 local.set $3 local.get $0 @@ -5180,6 +5286,8 @@ i32.gt_s end if + i32.const 0 + drop i64.const 0 local.set $3 local.get $0 @@ -5218,7 +5326,9 @@ local.get $5 i32.const 65 i32.sub - i32.const 25 + i32.const 90 + i32.const 65 + i32.sub i32.le_u if local.get $5 @@ -5231,7 +5341,9 @@ local.get $5 i32.const 97 i32.sub - i32.const 25 + i32.const 122 + i32.const 97 + i32.sub i32.le_u if local.get $5 @@ -5294,6 +5406,10 @@ (local $4 i32) i32.const 1 local.set $2 + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $1 i32.const 0 i32.lt_s @@ -6188,7 +6304,9 @@ i32.gt_s if (result i32) local.get $17 - i32.const 37 + i32.const 22 + i32.const 15 + i32.add i32.le_s else i32.const 0 @@ -6906,7 +7024,9 @@ local.get $1 i64.extend_i32_s i64.mul - i64.const 268435456 + i64.const 1 + i64.const 28 + i64.shl i64.gt_u end if @@ -7147,6 +7267,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -7165,7 +7287,9 @@ local.set $4 local.get $3 local.get $4 - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and i32.le_u if @@ -7260,6 +7384,8 @@ global.get $~lib/heap/__heap_base i32.ge_u if + i32.const 1 + drop local.get $1 local.get $8 call $~lib/rt/rtrace/onrealloc @@ -7979,6 +8105,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -8252,6 +8382,8 @@ local.get $3 i32.const 2 call $~lib/array/ensureSize + i32.const 1 + drop local.get $0 i32.load offset=4 local.get $2 @@ -8404,6 +8536,8 @@ i32.add local.get $9 i32.store + i32.const 1 + drop local.get $9 call $~lib/rt/pure/__retain drop @@ -8608,6 +8742,11 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $2 i32.eqz if @@ -8858,6 +8997,10 @@ local.set $5 local.get $2 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -8898,6 +9041,10 @@ local.set $4 local.get $1 local.set $3 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $4 local.get $3 @@ -9104,7 +9251,8 @@ return end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -9125,6 +9273,10 @@ local.set $5 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $5 local.get $4 @@ -9145,6 +9297,10 @@ local.set $7 local.get $3 local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $5 local.get $7 local.get $4 @@ -9183,7 +9339,8 @@ local.set $0 end local.get $0 - i64.const 4294967295 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u i64.le_u if local.get $0 @@ -9206,6 +9363,10 @@ local.set $6 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $7 local.get $6 local.get $5 @@ -9228,6 +9389,10 @@ local.set $8 local.get $4 local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $6 local.get $8 local.get $5 @@ -9964,6 +10129,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -10036,6 +10205,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -18441,8 +18614,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -18466,6 +18643,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -18483,6 +18664,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -18495,6 +18678,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -18509,6 +18694,8 @@ end ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) @@ -18518,6 +18705,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq @@ -18536,13 +18727,16 @@ call $~lib/rt/pure/decrement ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/array/Array<~lib/string/String>#__visit_impl (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 + drop local.get $0 i32.load offset=4 local.set $2 @@ -18582,19 +18776,24 @@ call $~lib/rt/pure/__visit ) (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop local.get $0 i32.load local.get $1 call $~lib/rt/pure/__visit ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop + i32.const 0 + drop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index e38406323e..e9149546fe 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -183,6 +183,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -210,6 +212,10 @@ local.set $4 local.get $2 local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop local.get $3 i32.eqz if @@ -655,6 +661,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -897,6 +907,8 @@ local.get $1 call $~lib/rt/stub/__retain local.set $2 + i32.const 1 + drop local.get $2 call $~lib/util/hash/hashStr local.set $3 @@ -926,6 +938,8 @@ local.get $1 call $~lib/rt/stub/__retain local.set $2 + i32.const 1 + drop local.get $2 call $~lib/util/hash/hashStr local.set $3 @@ -1032,6 +1046,8 @@ i32.load call $~lib/rt/stub/__retain local.set $12 + i32.const 1 + drop local.get $12 call $~lib/util/hash/hashStr local.set $13 @@ -1129,6 +1145,8 @@ local.get $1 call $~lib/rt/stub/__retain local.set $3 + i32.const 1 + drop local.get $3 call $~lib/util/hash/hashStr local.set $4 @@ -1145,6 +1163,8 @@ local.set $6 local.get $6 if + i32.const 0 + drop local.get $6 local.get $2 i32.store offset=4 @@ -1196,10 +1216,14 @@ i32.add local.set $6 local.get $6 + i32.const 1 + drop local.get $1 call $~lib/rt/stub/__retain i32.store local.get $6 + i32.const 0 + drop local.get $2 i32.store offset=4 local.get $0 @@ -1401,6 +1425,24 @@ local.get $10 i32.load local.set $12 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $12 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.1 @@ -1493,6 +1535,24 @@ block $~lib/util/hash/HASH|inlined.0 (result i32) local.get $1 local.set $3 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $3 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.0 @@ -1505,6 +1565,8 @@ local.set $5 local.get $5 if + i32.const 1 + drop local.get $5 i32.load offset=4 local.set $3 @@ -1567,9 +1629,13 @@ i32.add local.set $5 local.get $5 + i32.const 0 + drop local.get $1 i32.store local.get $5 + i32.const 1 + drop local.get $2 call $~lib/rt/stub/__retain i32.store offset=4 @@ -1679,6 +1745,24 @@ block $~lib/util/hash/HASH|inlined.2 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.2 @@ -1695,6 +1779,24 @@ block $~lib/util/hash/HASH|inlined.3 (result i32) local.get $1 local.set $2 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + i32.const 4 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop local.get $2 call $~lib/util/hash/hash32 br $~lib/util/hash/HASH|inlined.3 @@ -2778,6 +2880,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2803,6 +2909,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2898,6 +3008,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index b388c79052..e69de29bb2 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -1,53112 +0,0 @@ -(module - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $none_=>_none (func)) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) - (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) - (type $f32_i32_i32_=>_i32 (func (param f32 i32 i32) (result i32))) - (type $f64_i32_i32_=>_i32 (func (param f64 i32 i32) (result i32))) - (type $i32_=>_none (func (param i32))) - (type $i64_i64_i32_i32_=>_i64 (func (param i64 i64 i32 i32) (result i64))) - (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) - (type $i64_=>_i32 (func (param i64) (result i32))) - (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) - (type $i64_i32_i32_=>_none (func (param i64 i32 i32))) - (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) - (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) - (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) - (type $i32_i32_i64_=>_i64 (func (param i32 i32 i64) (result i64))) - (type $i64_i32_i32_=>_i64 (func (param i64 i32 i32) (result i64))) - (type $f32_f32_i32_i32_=>_f32 (func (param f32 f32 i32 i32) (result f32))) - (type $f64_f64_i32_i32_=>_f64 (func (param f64 f64 i32 i32) (result f64))) - (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) - (type $f32_i32_i32_=>_none (func (param f32 i32 i32))) - (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) - (type $i32_i32_i64_=>_i32 (func (param i32 i32 i64) (result i32))) - (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) - (type $i32_i32_f32_=>_f32 (func (param i32 i32 f32) (result f32))) - (type $f32_i32_i32_=>_f32 (func (param f32 i32 i32) (result f32))) - (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) - (type $i32_i32_f64_=>_f64 (func (param i32 i32 f64) (result f64))) - (type $f64_i32_i32_=>_f64 (func (param f64 i32 i32) (result f64))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) - (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) - (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) - (type $none_=>_i32 (func (result i32))) - (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $i32_i32_f64_=>_i32 (func (param i32 i32 f64) (result i32))) - (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) - (type $f64_=>_i32 (func (param f64) (result i32))) - (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) - (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) - (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) - (import "rtrace" "onrealloc" (func $~lib/rt/rtrace/onrealloc (param i32 i32))) - (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) - (memory $0 1) - (data (i32.const 16) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 64) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 176) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 240) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 288) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 352) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 416) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 480) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\01\04\05") - (data (i32.const 512) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 560) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\00") - (data (i32.const 592) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\00\00") - (data (i32.const 624) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 656) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 688) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\00\00\00") - (data (i32.const 720) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\00\00\00\02") - (data (i32.const 752) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 800) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 848) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 896) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") - (data (i32.const 944) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") - (data (i32.const 992) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1024) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00") - (data (i32.const 1072) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1120) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1168) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00") - (data (i32.const 1216) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1264) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1312) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1360) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1408) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1456) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1504) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1552) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1600) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00") - (data (i32.const 1648) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\n\00\00\00\0c\00\00\00\0e\00\00\00") - (data (i32.const 1680) "\10\00\00\00\01\00\00\00\0f\00\00\00\10\00\00\00\80\06\00\00\80\06\00\00\0c\00\00\00\03\00\00\00") - (data (i32.const 1712) "$\00\00\00\01\00\00\00\00\00\00\00$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") - (data (i32.const 1776) "\10\00\00\00\01\00\00\00\0f\00\00\00\10\00\00\00\c0\06\00\00\c0\06\00\00$\00\00\00\t\00\00\00") - (data (i32.const 1808) ",\00\00\00\01\00\00\00\00\00\00\00,\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\n\00\00\00") - (data (i32.const 1872) "\10\00\00\00\01\00\00\00\0f\00\00\00\10\00\00\00 \07\00\00 \07\00\00,\00\00\00\0b\00\00\00") - (data (i32.const 1904) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 1920) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\000\00") - (data (i32.const 1952) "\90\01\00\00\01\00\00\00\10\00\00\00\90\01\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (data (i32.const 2368) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00,\00") - (data (i32.const 2400) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\001\00,\002\00,\003\00,\004\00,\005\00") - (data (i32.const 2448) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000\00") - (data (i32.const 2480) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00") - (data (i32.const 2512) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00") - (data (i32.const 2560) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00") - (data (i32.const 2592) "\b8\02\00\00\01\00\00\00\11\00\00\00\b8\02\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0) - (global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) - (global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) - (global $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT i32 (i32.const 1)) - (global $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT i32 (i32.const 2)) - (global $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT i32 (i32.const 2)) - (global $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT i32 (i32.const 4)) - (global $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT i32 (i32.const 4)) - (global $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) - (global $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) - (global $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT i32 (i32.const 4)) - (global $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) - (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) - (global $std/typedarray/forEachCallCount (mut i32) (i32.const 0)) - (global $std/typedarray/forEachSelf (mut i32) (i32.const 0)) - (global $std/typedarray/forEachValues i32 (i32.const 1696)) - (global $std/typedarray/testArrayReverseValues i32 (i32.const 1792)) - (global $std/typedarray/testArrayIndexOfAndLastIndexOfValues i32 (i32.const 1888)) - (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) - (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) - (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) - (global $~lib/util/number/_exp (mut i32) (i32.const 0)) - (global $~lib/util/number/_K (mut i32) (i32.const 0)) - (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) - (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $std/typedarray/testArrayWrapValues i32 (i32.const 3712)) - (global $std/typedarray/setSource1 (mut i32) (i32.const 3776)) - (global $std/typedarray/setSource2 (mut i32) (i32.const 3840)) - (global $std/typedarray/setSource3 (mut i32) (i32.const 3920)) - (global $std/typedarray/setSource7 (mut i32) (i32.const 3984)) - (global $~started (mut i32) (i32.const 0)) - (global $~lib/heap/__heap_base i32 (i32.const 7804)) - (export "__setArgumentsLength" (func $~setArgumentsLength)) - (export "_start" (func $~start)) - (export "memory" (memory $0)) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 277 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $3 - local.get $3 - i32.const 16 - i32.ge_u - if (result i32) - local.get $3 - i32.const 1073741808 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 279 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $4 - local.get $3 - i32.const 4 - i32.shr_u - local.set $5 - else - i32.const 31 - local.get $3 - i32.clz - i32.sub - local.set $4 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $5 - local.get $4 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $4 - end - local.get $4 - i32.const 23 - i32.lt_u - if (result i32) - local.get $5 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 292 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=16 - local.set $6 - local.get $1 - i32.load offset=20 - local.set $7 - local.get $6 - if - local.get $6 - local.get $7 - i32.store offset=20 - end - local.get $7 - if - local.get $7 - local.get $6 - i32.store offset=16 - end - local.get $1 - local.get $0 - local.set $10 - local.get $4 - local.set $9 - local.get $5 - local.set $8 - local.get $10 - local.get $9 - i32.const 4 - i32.shl - local.get $8 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - i32.eq - if - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - local.get $7 - i32.eqz - if - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $9 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - local.get $9 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.const -1 - i32.xor - i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 205 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.set $2 - local.get $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 207 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $4 - local.get $4 - i32.load - local.set $5 - local.get $5 - i32.const 1 - i32.and - if - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.add - local.get $5 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $3 - local.get $3 - i32.const 1073741808 - i32.lt_u - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $2 - i32.const 3 - i32.and - local.get $3 - i32.or - local.tee $2 - i32.store - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $4 - local.get $4 - i32.load - local.set $5 - end - end - local.get $2 - i32.const 2 - i32.and - if - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - local.set $6 - local.get $6 - i32.load - local.set $3 - local.get $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 228 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.add - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $7 - local.get $7 - i32.const 1073741808 - i32.lt_u - if - local.get $0 - local.get $6 - call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 - i32.const 3 - i32.and - local.get $7 - i32.or - local.tee $2 - i32.store - local.get $6 - local.set $1 - end - end - local.get $4 - local.get $5 - i32.const 2 - i32.or - i32.store - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $8 - local.get $8 - i32.const 16 - i32.ge_u - if (result i32) - local.get $8 - i32.const 1073741808 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 243 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 16 - i32.add - local.get $8 - i32.add - local.get $4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 244 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $8 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $9 - local.get $8 - i32.const 4 - i32.shr_u - local.set $10 - else - i32.const 31 - local.get $8 - i32.clz - i32.sub - local.set $9 - local.get $8 - local.get $9 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $10 - local.get $9 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $9 - end - local.get $9 - i32.const 23 - i32.lt_u - if (result i32) - local.get $10 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 260 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $11 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - local.get $11 - i32.store offset=20 - local.get $11 - if - local.get $11 - local.get $1 - i32.store offset=16 - end - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $9 - i32.shl - i32.or - i32.store - local.get $0 - local.set $13 - local.get $9 - local.set $12 - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - local.get $2 - i32.le_u - if (result i32) - local.get $1 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $2 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 386 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - local.set $4 - i32.const 0 - local.set $5 - local.get $4 - if - local.get $1 - local.get $4 - i32.const 16 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 396 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 16 - i32.sub - local.get $4 - i32.eq - if - local.get $1 - i32.const 16 - i32.sub - local.set $1 - local.get $4 - i32.load - local.set $5 - else - nop - end - else - local.get $1 - local.get $0 - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 408 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - local.get $1 - i32.sub - local.set $6 - local.get $6 - i32.const 48 - i32.lt_u - if - i32.const 0 - return - end - local.get $6 - i32.const 16 - i32.const 1 - i32.shl - i32.sub - local.set $7 - local.get $1 - local.set $8 - local.get $8 - local.get $7 - i32.const 1 - i32.or - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $8 - i32.const 0 - i32.store offset=16 - local.get $8 - i32.const 0 - i32.store offset=20 - local.get $1 - local.get $6 - i32.add - i32.const 16 - i32.sub - local.set $4 - local.get $4 - i32.const 0 - i32.const 2 - i32.or - i32.store - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $8 - call $~lib/rt/tlsf/insertBlock - i32.const 1 - ) - (func $~lib/rt/tlsf/maybeInitialize (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - global.get $~lib/rt/tlsf/ROOT - local.set $0 - local.get $0 - i32.eqz - if - global.get $~lib/heap/__heap_base - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $1 - memory.size - local.set $2 - local.get $1 - i32.const 1572 - i32.add - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $3 - local.get $3 - local.get $2 - i32.gt_s - if (result i32) - local.get $3 - local.get $2 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $1 - local.set $0 - local.get $0 - i32.const 0 - i32.store - local.get $0 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 23 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $0 - local.set $8 - local.get $5 - local.set $7 - i32.const 0 - local.set $6 - local.get $8 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $8 - loop $for-loop|1 - local.get $8 - i32.const 16 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|1 - end - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $1 - i32.const 1572 - i32.add - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $5 - local.get $0 - local.get $5 - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $0 - global.set $~lib/rt/tlsf/ROOT - end - local.get $0 - ) - (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.const 1073741808 - i32.ge_u - if - i32.const 192 - i32.const 144 - i32.const 461 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.tee $1 - i32.const 16 - local.tee $2 - local.get $1 - local.get $2 - i32.gt_u - select - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $2 - local.get $1 - i32.const 4 - i32.shr_u - local.set $3 - else - local.get $1 - i32.const 536870904 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $1 - end - local.set $4 - i32.const 31 - local.get $4 - i32.clz - i32.sub - local.set $2 - local.get $4 - local.get $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $3 - local.get $2 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $2 - end - local.get $2 - i32.const 23 - i32.lt_u - if (result i32) - local.get $3 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 338 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const 0 - i32.const -1 - i32.xor - local.get $3 - i32.shl - i32.and - local.set $6 - i32.const 0 - local.set $7 - local.get $6 - i32.eqz - if - local.get $0 - i32.load - i32.const 0 - i32.const -1 - i32.xor - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.set $5 - local.get $5 - i32.eqz - if - i32.const 0 - local.set $7 - else - local.get $5 - i32.ctz - local.set $2 - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $6 - local.get $6 - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 351 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $7 - end - else - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $7 - end - local.get $7 - ) - (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $1 - i32.const 536870904 - i32.lt_u - if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.const 1 - i32.sub - i32.add - local.set $1 - end - memory.size - local.set $2 - local.get $1 - i32.const 16 - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.sub - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - i32.ne - i32.shl - i32.add - local.set $1 - local.get $1 - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $4 - local.get $2 - local.tee $3 - local.get $4 - local.tee $5 - local.get $3 - local.get $5 - i32.gt_s - select - local.set $6 - local.get $6 - memory.grow - i32.const 0 - i32.lt_s - if - local.get $4 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $7 - local.get $0 - local.get $2 - i32.const 16 - i32.shl - local.get $7 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.set $3 - local.get $2 - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 365 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.sub - local.set $4 - local.get $4 - i32.const 32 - i32.ge_u - if - local.get $1 - local.get $2 - local.get $3 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.get $2 - i32.add - local.set $5 - local.get $5 - local.get $4 - i32.const 16 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const 1 - i32.const -1 - i32.xor - i32.and - i32.store - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - i32.load - i32.const 2 - i32.const -1 - i32.xor - i32.and - i32.store - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/rt/tlsf/collectLock - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/tlsf/prepareSize - local.set $3 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.set $4 - local.get $4 - i32.eqz - if - global.get $~lib/gc/gc.auto - if - i32.const 1 - global.set $~lib/rt/tlsf/collectLock - call $~lib/rt/pure/__collect - i32.const 0 - global.set $~lib/rt/tlsf/collectLock - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.set $4 - local.get $4 - i32.eqz - if - local.get $0 - local.get $3 - call $~lib/rt/tlsf/growMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.set $4 - local.get $4 - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 513 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - end - else - local.get $0 - local.get $3 - call $~lib/rt/tlsf/growMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.set $4 - local.get $4 - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 518 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - end - end - local.get $4 - i32.load - i32.const -4 - i32.and - local.get $3 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 521 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 0 - i32.store offset=4 - local.get $4 - local.get $2 - i32.store offset=8 - local.get $4 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $4 - local.get $3 - call $~lib/rt/tlsf/prepareBlock - local.get $4 - call $~lib/rt/rtrace/onalloc - local.get $4 - ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) - (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - block $~lib/util/memory/memset|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.eqz - if - br $~lib/util/memory/memset|inlined.0 - end - local.get $5 - local.get $3 - i32.add - i32.const 4 - i32.sub - local.set $6 - local.get $5 - local.get $4 - i32.store8 - local.get $6 - local.get $4 - i32.store8 offset=3 - local.get $3 - i32.const 2 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - local.get $5 - local.get $4 - i32.store8 offset=1 - local.get $5 - local.get $4 - i32.store8 offset=2 - local.get $6 - local.get $4 - i32.store8 offset=2 - local.get $6 - local.get $4 - i32.store8 offset=1 - local.get $3 - i32.const 6 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - local.get $5 - local.get $4 - i32.store8 offset=3 - local.get $6 - local.get $4 - i32.store8 - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - i32.const 0 - local.get $5 - i32.sub - i32.const 3 - i32.and - local.set $7 - local.get $5 - local.get $7 - i32.add - local.set $5 - local.get $3 - local.get $7 - i32.sub - local.set $3 - local.get $3 - i32.const -4 - i32.and - local.set $3 - i32.const -1 - i32.const 255 - i32.div_u - local.get $4 - i32.const 255 - i32.and - i32.mul - local.set $8 - local.get $5 - local.get $3 - i32.add - i32.const 28 - i32.sub - local.set $6 - local.get $5 - local.get $8 - i32.store - local.get $6 - local.get $8 - i32.store offset=24 - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - local.get $5 - local.get $8 - i32.store offset=4 - local.get $5 - local.get $8 - i32.store offset=8 - local.get $6 - local.get $8 - i32.store offset=16 - local.get $6 - local.get $8 - i32.store offset=20 - local.get $3 - i32.const 24 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - local.get $5 - local.get $8 - i32.store offset=12 - local.get $5 - local.get $8 - i32.store offset=16 - local.get $5 - local.get $8 - i32.store offset=20 - local.get $5 - local.get $8 - i32.store offset=24 - local.get $6 - local.get $8 - i32.store - local.get $6 - local.get $8 - i32.store offset=4 - local.get $6 - local.get $8 - i32.store offset=8 - local.get $6 - local.get $8 - i32.store offset=12 - i32.const 24 - local.get $5 - i32.const 4 - i32.and - i32.add - local.set $7 - local.get $5 - local.get $7 - i32.add - local.set $5 - local.get $3 - local.get $7 - i32.sub - local.set $3 - local.get $8 - i64.extend_i32_u - local.get $8 - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - local.set $9 - loop $while-continue|0 - local.get $3 - i32.const 32 - i32.ge_u - local.set $10 - local.get $10 - if - local.get $5 - local.get $9 - i64.store - local.get $5 - local.get $9 - i64.store offset=8 - local.get $5 - local.get $9 - i64.store offset=16 - local.get $5 - local.get $9 - i64.store offset=24 - local.get $3 - i32.const 32 - i32.sub - local.set $3 - local.get $5 - i32.const 32 - i32.add - local.set $5 - br $while-continue|0 - end - end - end - ) - (func $~lib/rt/pure/increment (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const -268435456 - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const -268435456 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 256 - i32.const 109 - i32.const 3 - 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 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 256 - i32.const 112 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (func $~lib/rt/pure/__release (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/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.const 1073741808 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 32 - i32.const 80 - i32.const 23 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.shl - local.tee $1 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - i32.const 0 - local.get $1 - call $~lib/memory/memory.fill - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $6 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $5 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - ) - (func $~lib/typedarray/Int8Array#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - i32.const 3 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - ) - (func $~lib/typedarray/Int8Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - ) - (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/typedarray/Uint8Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - ) - (func $~lib/typedarray/Uint8ClampedArray#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/typedarray/Uint8ClampedArray#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - ) - (func $~lib/typedarray/Int16Array#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - i32.const 6 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 1 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - ) - (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - i32.const 7 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 1 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/typedarray/Uint16Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - ) - (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - i32.const 8 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/typedarray/Int32Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - ) - (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - i32.const 9 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/typedarray/Uint32Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - ) - (func $~lib/typedarray/Int64Array#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - i32.const 10 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/typedarray/Int64Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - ) - (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - i32.const 11 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/typedarray/Uint64Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - ) - (func $~lib/typedarray/Float32Array#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - i32.const 12 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - ) - (func $~lib/typedarray/Float64Array#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - i32.const 13 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - end - local.get $1 - i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/typedarray/Float64Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - ) - (func $std/typedarray/testInstantiate (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - i32.const 0 - local.get $0 - call $~lib/typedarray/Int8Array#constructor - local.set $1 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.get $0 - i32.const 1 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.get $0 - call $~lib/typedarray/Uint8Array#constructor - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.load offset=8 - local.get $0 - i32.const 1 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 38 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Uint8Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 39 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.set $3 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load offset=8 - local.get $0 - i32.const 1 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.get $0 - call $~lib/typedarray/Int16Array#constructor - local.set $4 - local.get $4 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.load offset=8 - local.get $0 - i32.const 2 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 48 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.get $0 - call $~lib/typedarray/Uint16Array#constructor - local.set $5 - local.get $5 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 52 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=8 - local.get $0 - i32.const 2 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 53 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 54 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.get $0 - call $~lib/typedarray/Int32Array#constructor - local.set $6 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 57 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.load offset=8 - local.get $0 - i32.const 4 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 58 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - call $~lib/typedarray/Int32Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 59 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.get $0 - call $~lib/typedarray/Uint32Array#constructor - local.set $7 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 62 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.load offset=8 - local.get $0 - i32.const 4 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/typedarray/Uint32Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.get $0 - call $~lib/typedarray/Int64Array#constructor - local.set $8 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.load offset=8 - local.get $0 - i32.const 8 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - call $~lib/typedarray/Int64Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.get $0 - call $~lib/typedarray/Uint64Array#constructor - local.set $9 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 72 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.load offset=8 - local.get $0 - i32.const 8 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 73 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $9 - call $~lib/typedarray/Uint64Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 74 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.get $0 - call $~lib/typedarray/Float32Array#constructor - local.set $10 - local.get $10 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 77 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $10 - i32.load offset=8 - local.get $0 - i32.const 4 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 78 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $10 - call $~lib/typedarray/Float32Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 79 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.get $0 - call $~lib/typedarray/Float64Array#constructor - local.set $11 - local.get $11 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $11 - i32.load offset=8 - local.get $0 - i32.const 8 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 83 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $11 - call $~lib/typedarray/Float64Array#get:length - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/pure/__release - 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 - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 675 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - ) - (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 664 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $~lib/typedarray/Int32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - i32.const 12 - i32.const 8 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $5 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 2 - i32.shl - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 1315 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - f64.store - ) - (func $~lib/typedarray/Float64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - i32.const 12 - i32.const 13 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $5 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 3 - i32.shl - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~setArgumentsLength (param $0 i32) - local.get $0 - global.set $~argumentsLength - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 i32) - (local $8 f64) - (local $9 i32) - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $8 - local.get $2 - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $8 - f64.store - else - br $while-break|1 - end - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $5 - f64.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 16 - i32.sub - local.set $1 - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $1 - i32.load - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $1 - i32.load offset=4 - i32.const -268435456 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - ) - (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/tlsf/__free (param $0 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f64) - (local $10 f64) - (local $11 i32) - (local $12 f64) - local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.set $3 - local.get $3 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and - local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - i32.const 1 - i32.shr_s - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end - end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $9 - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $10 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $10 - local.get $2 - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $5 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.get $9 - f64.store - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - local.get $10 - f64.store - end - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $for-loop|0 - end - end - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 - local.get $6 - if - local.get $0 - f64.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - f64.store - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.get $10 - f64.store - i32.const 1 - local.set $8 - loop $while-continue|3 - local.get $8 - i32.const 1 - i32.shl - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $8 - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.add - local.tee $7 - local.get $5 - i32.lt_s - local.set $11 - local.get $11 - if - local.get $7 - local.set $8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $8 - i32.const 0 - i32.gt_s - local.set $11 - local.get $11 - if - local.get $0 - f64.load - local.set $10 - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $10 - local.get $9 - local.get $2 - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $8 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - local.get $10 - f64.store - local.get $0 - local.get $9 - f64.store - end - local.get $8 - i32.const 1 - i32.shr_s - local.set $8 - br $while-continue|4 - end - end - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $for-loop|2 - end - end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - f64.load offset=8 - local.set $12 - local.get $0 - local.get $0 - f64.load - f64.store offset=8 - local.get $0 - local.get $12 - f64.store - ) - (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 f64) - (local $7 f64) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $4 - local.get $4 - i32.const 1 - i32.le_s - if - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.eq - if - local.get $5 - f64.load offset=8 - local.set $6 - local.get $5 - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $7 - local.get $2 - call_indirect (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $7 - f64.store offset=8 - local.get $5 - local.get $6 - f64.store - end - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $5 - local.set $10 - local.get $4 - local.set $9 - local.get $2 - local.set $8 - local.get $9 - i32.const 256 - i32.lt_s - if - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/sort/insertionSort - else - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/sort/weakHeapSort - end - local.get $3 - end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) - local.get $0 - i64.reinterpret_f64 - local.set $2 - local.get $1 - i64.reinterpret_f64 - local.set $3 - local.get $2 - local.get $2 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor - local.set $2 - local.get $3 - local.get $3 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor - local.set $3 - local.get $2 - local.get $3 - i64.gt_s - local.get $2 - local.get $3 - i64.lt_s - i32.sub - ) - (func $~lib/typedarray/Float64Array#sort|trampoline (param $0 i32) (param $1 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) - i32.const 1 - br $~lib/util/sort/COMPARATOR|inlined.0 - end - local.set $1 - end - local.get $0 - local.get $1 - call $~lib/typedarray/Float64Array#sort - ) - (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - ) - (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 291 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - local.get $2 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $2 - i32.sub - i32.const 31 - i32.shr_s - local.get $2 - i32.or - i32.and - i32.store8 - ) - (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 280 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_u - ) - (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 35 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - local.get $2 - i32.store8 - ) - (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $7 - local.get $1 - local.set $6 - local.get $2 - local.set $5 - local.get $3 - local.set $4 - local.get $7 - i32.load offset=4 - local.set $8 - local.get $7 - call $~lib/typedarray/Int8Array#get:length - local.set $9 - local.get $5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $9 - local.get $5 - i32.add - local.tee $10 - i32.const 0 - local.tee $11 - local.get $10 - local.get $11 - i32.gt_s - select - else - local.get $5 - local.tee $10 - local.get $9 - local.tee $11 - local.get $10 - local.get $11 - i32.lt_s - select - end - local.set $5 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $9 - local.get $4 - i32.add - local.tee $10 - i32.const 0 - local.tee $11 - local.get $10 - local.get $11 - i32.gt_s - select - else - local.get $4 - local.tee $10 - local.get $9 - local.tee $11 - local.get $10 - local.get $11 - i32.lt_s - select - end - local.set $4 - local.get $5 - local.get $4 - i32.lt_s - if - local.get $8 - local.get $5 - i32.add - local.get $6 - local.get $4 - local.get $5 - i32.sub - call $~lib/memory/memory.fill - end - local.get $7 - ) - (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - loop $while-continue|0 - local.get $2 - if (result i32) - local.get $1 - i32.const 3 - i32.and - else - i32.const 0 - end - local.set $5 - local.get $5 - if - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.const 3 - i32.and - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $2 - i32.const 16 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store - local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.get $1 - i32.load - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 4 - i32.add - local.set $1 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - return - end - local.get $2 - i32.const 32 - i32.ge_u - if - block $break|2 - block $case2|2 - block $case1|2 - block $case0|2 - local.get $0 - i32.const 3 - i32.and - local.set $5 - local.get $5 - i32.const 1 - i32.eq - br_if $case0|2 - local.get $5 - i32.const 2 - i32.eq - br_if $case1|2 - local.get $5 - i32.const 3 - i32.eq - br_if $case2|2 - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 - local.get $2 - i32.const 17 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|3 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - loop $while-continue|4 - local.get $2 - i32.const 18 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 2 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 6 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 10 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 16 - i32.shr_u - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 14 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 16 - i32.shr_u - local.get $3 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|4 - end - end - br $break|2 - end - local.get $1 - i32.load - local.set $3 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|5 - local.get $2 - i32.const 19 - i32.ge_u - local.set $5 - local.get $5 - if - local.get $1 - i32.const 3 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 7 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 11 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 8 - i32.shr_u - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 15 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 8 - i32.shr_u - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $while-continue|5 - end - end - br $break|2 - end - end - local.get $2 - i32.const 16 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 8 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 4 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - i32.load8_u - i32.store8 - end - ) - (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - local.get $4 - i32.eq - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $4 - local.get $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - if - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $4 - i32.lt_u - if - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $5 - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $5 - local.get $4 - i64.load - i64.store - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.tee $7 - i32.const 1 - i32.add - local.set $5 - local.get $7 - local.get $4 - local.tee $7 - i32.const 1 - i32.add - local.set $4 - local.get $7 - i32.load8_u - i32.store8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - else - local.get $4 - i32.const 7 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $5 - local.get $3 - i32.add - i32.const 7 - i32.and - local.set $6 - local.get $6 - if - local.get $3 - i32.eqz - if - br $~lib/util/memory/memmove|inlined.0 - end - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $3 - i32.const 8 - i32.ge_u - local.set $6 - local.get $6 - if - local.get $3 - i32.const 8 - i32.sub - local.set $3 - local.get $5 - local.get $3 - i32.add - local.get $4 - local.get $3 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $3 - local.set $6 - local.get $6 - if - local.get $5 - local.get $3 - i32.const 1 - i32.sub - local.tee $3 - i32.add - local.get $4 - local.get $3 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - ) - (func $~lib/rt/__allocBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $0 - local.get $1 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $2 - if - local.get $3 - local.get $2 - local.get $0 - call $~lib/memory/memory.copy - end - local.get $3 - ) - (func $~lib/rt/__allocArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - i32.const 16 - local.get $2 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $0 - local.get $1 - i32.shl - local.set $5 - local.get $5 - i32.const 0 - local.get $3 - call $~lib/rt/__allocBuffer - local.set $6 - local.get $4 - local.get $6 - call $~lib/rt/pure/__retain - i32.store - local.get $4 - local.get $6 - i32.store offset=4 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $0 - i32.store offset=12 - local.get $4 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 24 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_s - ) - (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - i32.load8_s - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 368 - i32.const 528 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__unchecked_get - local.set $2 - local.get $2 - ) - (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $1 - call $~lib/array/Array#get:length - i32.ne - if - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - i32.const 0 - local.set $2 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $2 - call $~lib/typedarray/Int8Array#__get - local.get $1 - local.get $2 - call $~lib/array/Array#__get - i32.ne - if - i32.const 0 - local.set $5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - i32.const 12 - i32.const 3 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $5 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 0 - i32.shl - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $7 - local.get $1 - local.set $6 - local.get $2 - local.set $5 - local.get $3 - local.set $4 - local.get $7 - i32.load offset=4 - local.set $8 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $9 - local.get $5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $9 - local.get $5 - i32.add - local.tee $10 - i32.const 0 - local.tee $11 - local.get $10 - local.get $11 - i32.gt_s - select - else - local.get $5 - local.tee $10 - local.get $9 - local.tee $11 - local.get $10 - local.get $11 - i32.lt_s - select - end - local.set $5 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $9 - local.get $4 - i32.add - local.tee $10 - i32.const 0 - local.tee $11 - local.get $10 - local.get $11 - i32.gt_s - select - else - local.get $4 - local.tee $10 - local.get $9 - local.tee $11 - local.get $10 - local.get $11 - i32.lt_s - select - end - local.set $4 - loop $for-loop|0 - local.get $5 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $7 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 368 - i32.const 528 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__unchecked_get - local.set $2 - local.get $2 - ) - (func $std/typedarray/isInt32ArrayEqual (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $1 - call $~lib/array/Array#get:length - i32.ne - if - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - i32.const 0 - local.set $2 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $2 - call $~lib/typedarray/Int32Array#__get - local.get $1 - local.get $2 - call $~lib/array/Array#__get - i32.ne - if - i32.const 0 - local.set $5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $4 - local.get $6 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $6 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.get $4 - i32.sub - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $6 - i32.const 0 - local.get $6 - call $~lib/typedarray/Int32Array#constructor - local.tee $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $8 - i32.load offset=4 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $8 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $7 - local.get $1 - local.set $6 - local.get $2 - local.set $5 - local.get $3 - local.set $4 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - local.get $7 - i32.load offset=4 - local.set $9 - local.get $4 - local.tee $10 - local.get $8 - local.tee $11 - local.get $10 - local.get $11 - i32.lt_s - select - local.set $4 - local.get $6 - i32.const 0 - i32.lt_s - if (result i32) - local.get $8 - local.get $6 - i32.add - local.tee $10 - i32.const 0 - local.tee $11 - local.get $10 - local.get $11 - i32.gt_s - select - else - local.get $6 - local.tee $10 - local.get $8 - local.tee $11 - local.get $10 - local.get $11 - i32.lt_s - select - end - local.set $10 - local.get $5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $8 - local.get $5 - i32.add - local.tee $11 - i32.const 0 - local.tee $12 - local.get $11 - local.get $12 - i32.gt_s - select - else - local.get $5 - local.tee $11 - local.get $8 - local.tee $12 - local.get $11 - local.get $12 - i32.lt_s - select - end - local.set $11 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $8 - local.get $4 - i32.add - local.tee $12 - i32.const 0 - local.tee $13 - local.get $12 - local.get $13 - i32.gt_s - select - else - local.get $4 - local.tee $12 - local.get $8 - local.tee $13 - local.get $12 - local.get $13 - i32.lt_s - select - end - local.set $12 - local.get $12 - local.get $11 - i32.sub - local.tee $13 - local.get $8 - local.get $10 - i32.sub - local.tee $14 - local.get $13 - local.get $14 - i32.lt_s - select - local.set $13 - local.get $9 - local.get $10 - i32.const 2 - i32.shl - i32.add - local.get $9 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $13 - i32.const 2 - i32.shl - call $~lib/memory/memory.copy - local.get $7 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int8Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Int8Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 0 - call $~lib/typedarray/Int8Array#reduce - local.set $2 - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 163 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - local.get $2 - i32.store8 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint8Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint8Array#reduce - local.set $2 - local.get $2 - i32.const 255 - i32.and - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint8ClampedArray#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#reduce - local.set $2 - local.get $2 - i32.const 255 - i32.and - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 419 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int16Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int16Array#reduce - local.set $2 - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 547 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint16Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 6 - i32.const 0 - call $~lib/typedarray/Uint16Array#reduce - local.set $2 - local.get $2 - i32.const 65535 - i32.and - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int32Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 7 - i32.const 0 - call $~lib/typedarray/Int32Array#reduce - local.set $2 - local.get $2 - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 803 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint32Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 8 - i32.const 0 - call $~lib/typedarray/Uint32Array#reduce - local.set $2 - local.get $2 - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 931 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) - (local $4 i64) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - local.get $1 - i64.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int64Array#reduce (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i64_i64_i32_i32_=>_i64) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i64) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 9 - i64.const 0 - call $~lib/typedarray/Int64Array#reduce - local.set $2 - local.get $2 - i64.const 6 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 1059 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i64.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint64Array#reduce (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i64_i64_i32_i32_=>_i64) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i64) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 10 - i64.const 0 - call $~lib/typedarray/Uint64Array#reduce - local.set $2 - local.get $2 - i64.const 6 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 1187 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - f32.store - ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) - (local $4 f32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - local.get $1 - f32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Float32Array#reduce (param $0 i32) (param $1 i32) (param $2 f32) (result f32) - (local $3 f32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Float32Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $f32_f32_i32_i32_=>_f32) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 f32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 11 - f32.const 0 - call $~lib/typedarray/Float32Array#reduce - local.set $2 - local.get $2 - f32.const 6 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) - (local $4 f64) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - local.get $1 - f64.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Float64Array#reduce (param $0 i32) (param $1 i32) (param $2 f64) (result f64) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Float64Array#get:length - local.set $8 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_s - local.set $9 - local.get $9 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $f64_f64_i32_i32_=>_f64) - local.set $3 - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 f64) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 12 - f64.const 0 - call $~lib/typedarray/Float64Array#reduce - local.set $2 - local.get $2 - f64.const 6 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int8Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $7 - local.get $5 - call $~lib/rt/pure/__release - local.get $7 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 13 - i32.const 0 - call $~lib/typedarray/Int8Array#reduceRight - local.set $2 - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint8Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $7 - local.get $5 - call $~lib/rt/pure/__release - local.get $7 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 14 - i32.const 0 - call $~lib/typedarray/Uint8Array#reduceRight - local.set $2 - local.get $2 - i32.const 255 - i32.and - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint8ClampedArray#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $7 - local.get $5 - call $~lib/rt/pure/__release - local.get $7 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 15 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#reduceRight - local.set $2 - local.get $2 - i32.const 255 - i32.and - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int16Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $7 - local.get $5 - call $~lib/rt/pure/__release - local.get $7 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 16 - i32.const 0 - call $~lib/typedarray/Int16Array#reduceRight - local.set $2 - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint16Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $7 - local.get $5 - call $~lib/rt/pure/__release - local.get $7 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 17 - i32.const 0 - call $~lib/typedarray/Uint16Array#reduceRight - local.set $2 - local.get $2 - i32.const 65535 - i32.and - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int32Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $7 - local.get $5 - call $~lib/rt/pure/__release - local.get $7 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 18 - i32.const 0 - call $~lib/typedarray/Int32Array#reduceRight - local.set $2 - local.get $2 - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint32Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $7 - local.get $5 - call $~lib/rt/pure/__release - local.get $7 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 19 - i32.const 0 - call $~lib/typedarray/Uint32Array#reduceRight - local.set $2 - local.get $2 - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i64.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i64_i64_i32_i32_=>_i64) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i64) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 20 - i64.const 0 - call $~lib/typedarray/Int64Array#reduceRight - local.set $2 - local.get $2 - i64.const 6 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - i64.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i64) (result i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $i64_i64_i32_i32_=>_i64) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i64) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 21 - i64.const 0 - call $~lib/typedarray/Uint64Array#reduceRight - local.set $2 - local.get $2 - i64.const 6 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - f32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Float32Array#reduceRight (param $0 i32) (param $1 i32) (param $2 f32) (result f32) - (local $3 f32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - call $~lib/typedarray/Float32Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $f32_f32_i32_i32_=>_f32) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 f32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 22 - f32.const 0 - call $~lib/typedarray/Float32Array#reduceRight - local.set $2 - local.get $2 - f32.const 6 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 (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 - local.set $3 - local.get $0 - local.get $1 - f64.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Float64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 f64) (result f64) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i32.load offset=4 - local.set $6 - local.get $5 - call $~lib/typedarray/Float64Array#get:length - i32.const 1 - i32.sub - local.set $7 - loop $for-loop|0 - local.get $7 - i32.const 0 - i32.ge_s - local.set $8 - local.get $8 - if - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $f64_f64_i32_i32_=>_f64) - local.set $3 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|0 - end - end - local.get $3 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 f64) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 23 - f64.const 0 - call $~lib/typedarray/Float64Array#reduceRight - local.set $2 - local.get $2 - f64.const 6 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $0 - i32.mul - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int8Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 0 - i32.shl - local.set $6 - i32.const 12 - i32.const 3 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 24 - call $~lib/typedarray/Int8Array#map - local.set $2 - local.get $2 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 366 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 9 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $0 - i32.mul - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint8Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 0 - i32.shl - local.set $6 - i32.const 12 - i32.const 4 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 152 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_u - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 25 - call $~lib/typedarray/Uint8Array#map - local.set $2 - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 366 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 9 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $0 - i32.mul - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint8ClampedArray#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 0 - i32.shl - local.set $6 - i32.const 12 - i32.const 5 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 26 - call $~lib/typedarray/Uint8ClampedArray#map - local.set $2 - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 366 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 9 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $0 - i32.mul - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int16Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 1 - i32.shl - local.set $6 - i32.const 12 - i32.const 6 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 408 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 27 - call $~lib/typedarray/Int16Array#map - local.set $2 - local.get $2 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 366 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 9 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $0 - i32.mul - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint16Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 1 - i32.shl - local.set $6 - i32.const 12 - i32.const 7 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 536 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 28 - call $~lib/typedarray/Uint16Array#map - local.set $2 - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 366 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 9 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $0 - i32.mul - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int32Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.shl - local.set $6 - i32.const 12 - i32.const 8 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 29 - call $~lib/typedarray/Int32Array#map - local.set $2 - local.get $2 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 366 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 9 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $0 - i32.mul - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint32Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.shl - local.set $6 - i32.const 12 - i32.const 9 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 792 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 30 - call $~lib/typedarray/Uint32Array#map - local.set $2 - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 366 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 9 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) - (local $3 i64) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $0 - i64.mul - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int64Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 3 - i32.shl - local.set $6 - i32.const 12 - i32.const 10 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 3 - i32.shl - i32.add - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_i64) - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 920 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 31 - call $~lib/typedarray/Int64Array#map - local.set $2 - local.get $2 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 366 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 9 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) - (local $3 i64) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $0 - i64.mul - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint64Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 3 - i32.shl - local.set $6 - i32.const 12 - i32.const 11 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 3 - i32.shl - i32.add - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_i64) - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 1048 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 32 - call $~lib/typedarray/Uint64Array#map - local.set $2 - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 366 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 9 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result f32) - (local $3 f32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $0 - f32.mul - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Float32Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.shl - local.set $6 - i32.const 12 - i32.const 12 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $f32_i32_i32_=>_f32) - f32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 368 - i32.const 432 - i32.const 1176 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 33 - call $~lib/typedarray/Float32Array#map - local.set $2 - local.get $2 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 366 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 9 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result f64) - (local $3 f64) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $0 - f64.mul - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Float64Array#map (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $4 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 3 - i32.shl - local.set $6 - i32.const 12 - i32.const 13 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $8 - local.get $9 - i32.const 3 - i32.shl - i32.add - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $f64_i32_i32_=>_f64) - f64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $8 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 34 - call $~lib/typedarray/Float64Array#map - local.set $2 - local.get $2 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 366 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 9 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 367 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 2 - i32.gt_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/rt/tlsf/reallocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - call $~lib/rt/tlsf/prepareSize - local.set $3 - local.get $1 - i32.load - local.set $4 - local.get $3 - local.get $4 - i32.const -4 - i32.and - i32.le_u - if - local.get $0 - local.get $1 - local.get $3 - call $~lib/rt/tlsf/prepareBlock - local.get $1 - local.get $2 - i32.store offset=12 - local.get $1 - return - end - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $6 - local.get $6 - i32.load - local.set $7 - local.get $7 - i32.const 1 - i32.and - if - local.get $4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.add - local.get $7 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $5 - local.get $5 - local.get $3 - i32.ge_u - if - local.get $0 - local.get $6 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $4 - i32.const 3 - i32.and - local.get $5 - i32.or - i32.store - local.get $1 - local.get $2 - i32.store offset=12 - local.get $0 - local.get $1 - local.get $3 - call $~lib/rt/tlsf/prepareBlock - local.get $1 - return - end - end - local.get $0 - local.get $2 - local.get $1 - i32.load offset=8 - call $~lib/rt/tlsf/allocateBlock - local.set $8 - local.get $8 - local.get $1 - i32.load offset=4 - i32.store offset=4 - local.get $8 - i32.const 16 - i32.add - local.get $1 - i32.const 16 - i32.add - local.get $2 - call $~lib/memory/memory.copy - local.get $1 - global.get $~lib/heap/__heap_base - i32.ge_u - if - local.get $1 - local.get $8 - call $~lib/rt/rtrace/onrealloc - local.get $0 - local.get $1 - call $~lib/rt/tlsf/freeBlock - end - local.get $8 - ) - (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/checkUsedBlock - local.get $1 - call $~lib/rt/tlsf/reallocateBlock - i32.const 16 - i32.add - ) - (func $~lib/typedarray/Int8Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - i32.const 12 - i32.const 3 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $4 - i32.const 0 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.store8 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 0 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/tlsf/__realloc - local.set $10 - local.get $5 - local.get $10 - call $~lib/rt/pure/__retain - i32.store - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - call $~lib/rt/pure/__retain - local.set $11 - local.get $3 - call $~lib/rt/pure/__release - local.get $11 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 35 - call $~lib/typedarray/Int8Array#filter - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.gt_u - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint8Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $4 - i32.const 12 - i32.const 4 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $4 - i32.const 0 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.store8 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 0 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/tlsf/__realloc - local.set $10 - local.get $5 - local.get $10 - call $~lib/rt/pure/__retain - i32.store - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - call $~lib/rt/pure/__retain - local.set $11 - local.get $3 - call $~lib/rt/pure/__release - local.get $11 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 6 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 36 - call $~lib/typedarray/Uint8Array#filter - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Uint8Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.gt_u - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint8ClampedArray#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $4 - i32.const 12 - i32.const 5 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $4 - i32.const 0 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.store8 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 0 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/tlsf/__realloc - local.set $10 - local.get $5 - local.get $10 - call $~lib/rt/pure/__retain - i32.store - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - call $~lib/rt/pure/__retain - local.set $11 - local.get $3 - call $~lib/rt/pure/__release - local.get $11 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 37 - call $~lib/typedarray/Uint8ClampedArray#filter - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 2 - i32.gt_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int16Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - i32.const 12 - i32.const 6 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $4 - i32.const 1 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store16 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 1 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/tlsf/__realloc - local.set $10 - local.get $5 - local.get $10 - call $~lib/rt/pure/__retain - i32.store - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - call $~lib/rt/pure/__retain - local.set $11 - local.get $3 - call $~lib/rt/pure/__release - local.get $11 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 6 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 38 - call $~lib/typedarray/Int16Array#filter - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Int16Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 65535 - i32.and - i32.const 2 - i32.gt_u - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint16Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $4 - i32.const 12 - i32.const 7 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $4 - i32.const 1 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store16 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 1 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/tlsf/__realloc - local.set $10 - local.get $5 - local.get $10 - call $~lib/rt/pure/__retain - i32.store - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - call $~lib/rt/pure/__retain - local.set $11 - local.get $3 - call $~lib/rt/pure/__release - local.get $11 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 6 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 39 - call $~lib/typedarray/Uint16Array#filter - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Uint16Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 2 - i32.gt_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int32Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - i32.const 12 - i32.const 8 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $4 - i32.const 2 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $11 - i32.store - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 2 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/tlsf/__realloc - local.set $10 - local.get $5 - local.get $10 - call $~lib/rt/pure/__retain - i32.store - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - call $~lib/rt/pure/__retain - local.set $11 - local.get $3 - call $~lib/rt/pure/__release - local.get $11 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 6 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 40 - call $~lib/typedarray/Int32Array#filter - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 2 - i32.gt_u - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint32Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $4 - i32.const 12 - i32.const 9 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $4 - i32.const 2 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $11 - i32.store - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 2 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/tlsf/__realloc - local.set $10 - local.get $5 - local.get $10 - call $~lib/rt/pure/__retain - i32.store - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - call $~lib/rt/pure/__retain - local.set $11 - local.get $3 - call $~lib/rt/pure/__release - local.get $11 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 6 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 41 - call $~lib/typedarray/Uint32Array#filter - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Uint32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 2 - i64.gt_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int64Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i64) - (local $12 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - i32.const 12 - i32.const 10 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $4 - i32.const 3 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 3 - i32.shl - i32.add - local.get $11 - i64.store - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 3 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/tlsf/__realloc - local.set $10 - local.get $5 - local.get $10 - call $~lib/rt/pure/__retain - i32.store - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - call $~lib/rt/pure/__retain - local.set $12 - local.get $3 - call $~lib/rt/pure/__release - local.get $12 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 6 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 5 - i64.const 5 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 42 - call $~lib/typedarray/Int64Array#filter - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Int64Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 2 - i64.gt_u - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint64Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i64) - (local $12 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $4 - i32.const 12 - i32.const 11 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $4 - i32.const 3 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 3 - i32.shl - i32.add - local.get $11 - i64.store - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 3 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/tlsf/__realloc - local.set $10 - local.get $5 - local.get $10 - call $~lib/rt/pure/__retain - i32.store - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - call $~lib/rt/pure/__retain - local.set $12 - local.get $3 - call $~lib/rt/pure/__release - local.get $12 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 6 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 5 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 43 - call $~lib/typedarray/Uint64Array#filter - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Uint64Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f32.const 2 - f32.gt - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Float32Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - (local $12 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $4 - i32.const 12 - i32.const 12 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $4 - i32.const 2 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $f32_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $11 - f32.store - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 2 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/tlsf/__realloc - local.set $10 - local.get $5 - local.get $10 - call $~lib/rt/pure/__retain - i32.store - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - call $~lib/rt/pure/__retain - local.set $12 - local.get $3 - call $~lib/rt/pure/__release - local.get $12 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 6 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 5 - f32.const 5 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 44 - call $~lib/typedarray/Float32Array#filter - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Float32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 3 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f64.const 2 - f64.gt - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Float64Array#filter (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - (local $12 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $4 - i32.const 12 - i32.const 13 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $4 - i32.const 3 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $3 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $4 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - i32.const 3 - global.set $~argumentsLength - local.get $11 - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $f64_i32_i32_=>_i32) - if - local.get $6 - local.get $8 - local.tee $12 - i32.const 1 - i32.add - local.set $8 - local.get $12 - i32.const 3 - i32.shl - i32.add - local.get $11 - f64.store - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $8 - i32.const 3 - i32.shl - local.set $9 - local.get $6 - local.get $9 - call $~lib/rt/tlsf/__realloc - local.set $10 - local.get $5 - local.get $10 - call $~lib/rt/pure/__retain - i32.store - local.get $5 - local.get $9 - i32.store offset=8 - local.get $5 - local.get $10 - i32.store offset=4 - local.get $5 - call $~lib/rt/pure/__retain - local.set $12 - local.get $3 - call $~lib/rt/pure/__release - local.get $12 - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - i32.const 0 - i32.const 6 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 5 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 45 - call $~lib/typedarray/Float64Array#filter - local.set $2 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/typedarray/Float64Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 3 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int8Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 46 - call $~lib/typedarray/Int8Array#some - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 47 - call $~lib/typedarray/Int8Array#some - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint8Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 48 - call $~lib/typedarray/Uint8Array#some - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 49 - call $~lib/typedarray/Uint8Array#some - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint8ClampedArray#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 50 - call $~lib/typedarray/Uint8ClampedArray#some - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 51 - call $~lib/typedarray/Uint8ClampedArray#some - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int16Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 52 - call $~lib/typedarray/Int16Array#some - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 53 - call $~lib/typedarray/Int16Array#some - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 65535 - i32.and - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint16Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 65535 - i32.and - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 54 - call $~lib/typedarray/Uint16Array#some - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 55 - call $~lib/typedarray/Uint16Array#some - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int32Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 56 - call $~lib/typedarray/Int32Array#some - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 57 - call $~lib/typedarray/Int32Array#some - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint32Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 58 - call $~lib/typedarray/Uint32Array#some - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 59 - call $~lib/typedarray/Uint32Array#some - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 2 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_i32) - if - i32.const 1 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 0 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 60 - call $~lib/typedarray/Int64Array#some - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 61 - call $~lib/typedarray/Int64Array#some - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 2 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint64Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_i32) - if - i32.const 1 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 0 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 62 - call $~lib/typedarray/Uint64Array#some - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 63 - call $~lib/typedarray/Uint64Array#some - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f32.const 2 - f32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $f32_i32_i32_=>_i32) - if - i32.const 1 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f32.const 0 - f32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 64 - call $~lib/typedarray/Float32Array#some - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 65 - call $~lib/typedarray/Float32Array#some - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f64.const 2 - f64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $f64_i32_i32_=>_i32) - if - i32.const 1 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 0 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f64.const 0 - f64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 66 - call $~lib/typedarray/Float64Array#some - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 67 - call $~lib/typedarray/Float64Array#some - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 4 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 68 - call $~lib/typedarray/Int8Array#findIndex - local.set $2 - local.get $2 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 69 - call $~lib/typedarray/Int8Array#findIndex - local.set $3 - local.get $3 - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint8Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 4 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 70 - call $~lib/typedarray/Uint8Array#findIndex - local.set $2 - local.get $2 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 71 - call $~lib/typedarray/Uint8Array#findIndex - local.set $3 - local.get $3 - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint8ClampedArray#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 4 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 72 - call $~lib/typedarray/Uint8ClampedArray#findIndex - local.set $2 - local.get $2 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 73 - call $~lib/typedarray/Uint8ClampedArray#findIndex - local.set $3 - local.get $3 - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int16Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 4 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 74 - call $~lib/typedarray/Int16Array#findIndex - local.set $2 - local.get $2 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 75 - call $~lib/typedarray/Int16Array#findIndex - local.set $3 - local.get $3 - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 65535 - i32.and - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 65535 - i32.and - i32.const 4 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 76 - call $~lib/typedarray/Uint16Array#findIndex - local.set $2 - local.get $2 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 77 - call $~lib/typedarray/Uint16Array#findIndex - local.set $3 - local.get $3 - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 4 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 78 - call $~lib/typedarray/Int32Array#findIndex - local.set $2 - local.get $2 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 79 - call $~lib/typedarray/Int32Array#findIndex - local.set $3 - local.get $3 - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint32Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - local.get $5 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 4 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 80 - call $~lib/typedarray/Uint32Array#findIndex - local.set $2 - local.get $2 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 81 - call $~lib/typedarray/Uint32Array#findIndex - local.set $3 - local.get $3 - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 2 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int64Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_i32) - if - local.get $5 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 4 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 82 - call $~lib/typedarray/Int64Array#findIndex - local.set $2 - local.get $2 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 83 - call $~lib/typedarray/Int64Array#findIndex - local.set $3 - local.get $3 - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 2 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint64Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_i32) - if - local.get $5 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 4 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 84 - call $~lib/typedarray/Uint64Array#findIndex - local.set $2 - local.get $2 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 85 - call $~lib/typedarray/Uint64Array#findIndex - local.set $3 - local.get $3 - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f32.const 2 - f32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Float32Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $f32_i32_i32_=>_i32) - if - local.get $5 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f32.const 4 - f32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 86 - call $~lib/typedarray/Float32Array#findIndex - local.set $2 - local.get $2 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 87 - call $~lib/typedarray/Float32Array#findIndex - local.set $3 - local.get $3 - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f64.const 2 - f64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Float64Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $f64_i32_i32_=>_i32) - if - local.get $5 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const -1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f64.const 4 - f64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 88 - call $~lib/typedarray/Float64Array#findIndex - local.set $2 - local.get $2 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 438 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 89 - call $~lib/typedarray/Float64Array#findIndex - local.set $3 - local.get $3 - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 2 - i32.rem_s - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int8Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 90 - call $~lib/typedarray/Int8Array#every - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 91 - call $~lib/typedarray/Int8Array#every - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.rem_u - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint8Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 92 - call $~lib/typedarray/Uint8Array#every - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 93 - call $~lib/typedarray/Uint8Array#every - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.rem_u - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint8ClampedArray#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 94 - call $~lib/typedarray/Uint8ClampedArray#every - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 95 - call $~lib/typedarray/Uint8ClampedArray#every - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 2 - i32.rem_s - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 96 - call $~lib/typedarray/Int16Array#every - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 97 - call $~lib/typedarray/Int16Array#every - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 65535 - i32.and - i32.const 2 - i32.rem_u - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 65535 - i32.and - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 98 - call $~lib/typedarray/Uint16Array#every - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 99 - call $~lib/typedarray/Uint16Array#every - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 2 - i32.rem_s - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 100 - call $~lib/typedarray/Int32Array#every - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 101 - call $~lib/typedarray/Int32Array#every - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 2 - i32.rem_u - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint32Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 2 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 102 - call $~lib/typedarray/Uint32Array#every - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 103 - call $~lib/typedarray/Uint32Array#every - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 2 - i64.rem_s - i64.const 0 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 2 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 104 - call $~lib/typedarray/Int64Array#every - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 105 - call $~lib/typedarray/Int64Array#every - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 2 - i64.rem_u - i64.const 0 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Uint64Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i64.const 2 - i64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 106 - call $~lib/typedarray/Uint64Array#every - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 107 - call $~lib/typedarray/Uint64Array#every - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $0 - i32.reinterpret_f32 - local.set $2 - local.get $1 - i32.reinterpret_f32 - local.set $3 - local.get $2 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.set $4 - local.get $3 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.set $5 - local.get $2 - i32.const -2147483648 - i32.and - local.set $6 - local.get $3 - i32.const 1 - i32.shl - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $4 - i32.const 255 - i32.eq - end - if (result i32) - i32.const 1 - else - local.get $1 - local.get $1 - f32.ne - end - if - local.get $0 - local.get $1 - f32.mul - local.set $8 - local.get $8 - local.get $8 - f32.div - return - end - local.get $2 - i32.const 1 - i32.shl - local.set $9 - local.get $9 - local.get $7 - i32.le_u - if - local.get $9 - local.get $7 - i32.eq - if - f32.const 0 - local.get $0 - f32.mul - return - end - local.get $0 - return - end - local.get $4 - i32.eqz - if - local.get $4 - local.get $2 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.set $4 - local.get $2 - i32.const 0 - local.get $4 - i32.sub - i32.const 1 - i32.add - i32.shl - local.set $2 - else - local.get $2 - i32.const -1 - i32.const 9 - i32.shr_u - i32.and - local.set $2 - local.get $2 - i32.const 1 - i32.const 23 - i32.shl - i32.or - local.set $2 - end - local.get $5 - i32.eqz - if - local.get $5 - local.get $3 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.set $5 - local.get $3 - i32.const 0 - local.get $5 - i32.sub - i32.const 1 - i32.add - i32.shl - local.set $3 - else - local.get $3 - i32.const -1 - i32.const 9 - i32.shr_u - i32.and - local.set $3 - local.get $3 - i32.const 1 - i32.const 23 - i32.shl - i32.or - local.set $3 - end - loop $while-continue|0 - local.get $4 - local.get $5 - i32.gt_s - local.set $10 - local.get $10 - if - local.get $2 - local.get $3 - i32.ge_u - if - local.get $2 - local.get $3 - i32.eq - if - f32.const 0 - local.get $0 - f32.mul - return - end - local.get $2 - local.get $3 - i32.sub - local.set $2 - end - local.get $2 - i32.const 1 - i32.shl - local.set $2 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $while-continue|0 - end - end - local.get $2 - local.get $3 - i32.ge_u - if - local.get $2 - local.get $3 - i32.eq - if - f32.const 0 - local.get $0 - f32.mul - return - end - local.get $2 - local.get $3 - i32.sub - local.set $2 - end - local.get $2 - i32.const 8 - i32.shl - i32.clz - local.set $11 - local.get $4 - local.get $11 - i32.sub - local.set $4 - local.get $2 - local.get $11 - i32.shl - local.set $2 - local.get $4 - i32.const 0 - i32.gt_s - if - local.get $2 - i32.const 1 - i32.const 23 - i32.shl - i32.sub - local.set $2 - local.get $2 - local.get $4 - i32.const 23 - i32.shl - i32.or - local.set $2 - else - local.get $2 - i32.const 0 - local.get $4 - i32.sub - i32.const 1 - i32.add - i32.shr_u - local.set $2 - end - local.get $2 - local.get $6 - i32.or - local.set $2 - local.get $2 - f32.reinterpret_i32 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f32.const 2 - call $~lib/math/NativeMathf.mod - f32.const 0 - f32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $f32_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f32.const 2 - f32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 108 - call $~lib/typedarray/Float32Array#every - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 109 - call $~lib/typedarray/Float32Array#every - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64) - (local $2 i64) - (local $3 i64) - (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i64) - (local $8 f64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - local.get $0 - i64.reinterpret_f64 - local.set $2 - local.get $1 - i64.reinterpret_f64 - local.set $3 - local.get $2 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.set $4 - local.get $3 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.set $5 - local.get $2 - i64.const 63 - i64.shr_u - local.set $6 - local.get $3 - i64.const 1 - i64.shl - local.set $7 - local.get $7 - i64.const 0 - i64.eq - if (result i32) - i32.const 1 - else - local.get $4 - i64.const 2047 - i64.eq - end - if (result i32) - i32.const 1 - else - local.get $1 - local.get $1 - f64.ne - end - if - local.get $0 - local.get $1 - f64.mul - local.set $8 - local.get $8 - local.get $8 - f64.div - return - end - local.get $2 - i64.const 1 - i64.shl - local.set $9 - local.get $9 - local.get $7 - i64.le_u - if - local.get $9 - local.get $7 - i64.eq - if - f64.const 0 - local.get $0 - f64.mul - return - end - local.get $0 - return - end - local.get $4 - i64.const 0 - i64.ne - i32.eqz - if - local.get $4 - local.get $2 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.set $4 - local.get $2 - i64.const 0 - local.get $4 - i64.sub - i64.const 1 - i64.add - i64.shl - local.set $2 - else - local.get $2 - i64.const -1 - i64.const 12 - i64.shr_u - i64.and - local.set $2 - local.get $2 - i64.const 1 - i64.const 52 - i64.shl - i64.or - local.set $2 - end - local.get $5 - i64.const 0 - i64.ne - i32.eqz - if - local.get $5 - local.get $3 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.set $5 - local.get $3 - i64.const 0 - local.get $5 - i64.sub - i64.const 1 - i64.add - i64.shl - local.set $3 - else - local.get $3 - i64.const -1 - i64.const 12 - i64.shr_u - i64.and - local.set $3 - local.get $3 - i64.const 1 - i64.const 52 - i64.shl - i64.or - local.set $3 - end - loop $while-continue|0 - local.get $4 - local.get $5 - i64.gt_s - local.set $10 - local.get $10 - if - local.get $2 - local.get $3 - i64.ge_u - if - local.get $2 - local.get $3 - i64.eq - if - f64.const 0 - local.get $0 - f64.mul - return - end - local.get $2 - local.get $3 - i64.sub - local.set $2 - end - local.get $2 - i64.const 1 - i64.shl - local.set $2 - local.get $4 - i64.const 1 - i64.sub - local.set $4 - br $while-continue|0 - end - end - local.get $2 - local.get $3 - i64.ge_u - if - local.get $2 - local.get $3 - i64.eq - if - f64.const 0 - local.get $0 - f64.mul - return - end - local.get $2 - local.get $3 - i64.sub - local.set $2 - end - local.get $2 - i64.const 11 - i64.shl - i64.clz - local.set $11 - local.get $4 - local.get $11 - i64.sub - local.set $4 - local.get $2 - local.get $11 - i64.shl - local.set $2 - local.get $4 - i64.const 0 - i64.gt_s - if - local.get $2 - i64.const 1 - i64.const 52 - i64.shl - i64.sub - local.set $2 - local.get $2 - local.get $4 - i64.const 52 - i64.shl - i64.or - local.set $2 - else - local.get $2 - i64.const 0 - local.get $4 - i64.sub - i64.const 1 - i64.add - i64.shr_u - local.set $2 - end - local.get $2 - local.get $6 - i64.const 63 - i64.shl - i64.or - local.set $2 - local.get $2 - f64.reinterpret_i64 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f64.const 2 - call $~lib/math/NativeMath.mod - f64.const 0 - f64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - block $for-continue|0 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $f64_i32_i32_=>_i32) - if - br $for-continue|0 - end - i32.const 0 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - i32.const 1 - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - end - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f64.const 2 - f64.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 110 - call $~lib/typedarray/Float64Array#every - local.set $2 - local.get $2 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 461 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 111 - call $~lib/typedarray/Float64Array#every - local.set $3 - local.get $3 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/typedarray/forEachValues - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - local.get $3 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int8Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - global.get $std/typedarray/forEachValues - i32.const 0 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - i32.const 1 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - i32.const 2 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 112 - call $~lib/typedarray/Int8Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 495 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/typedarray/forEachValues - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - i32.const 255 - i32.and - local.get $3 - i32.const 255 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - global.get $std/typedarray/forEachValues - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 113 - call $~lib/typedarray/Uint8Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 495 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/typedarray/forEachValues - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - i32.const 255 - i32.and - local.get $3 - i32.const 255 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - global.get $std/typedarray/forEachValues - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 114 - call $~lib/typedarray/Uint8ClampedArray#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 495 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/typedarray/forEachValues - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - local.get $3 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - global.get $std/typedarray/forEachValues - i32.const 0 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - i32.const 1 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - i32.const 2 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 115 - call $~lib/typedarray/Int16Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 495 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/typedarray/forEachValues - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - i32.const 65535 - i32.and - local.get $3 - i32.const 65535 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - global.get $std/typedarray/forEachValues - i32.const 0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - i32.const 1 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - i32.const 2 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 116 - call $~lib/typedarray/Uint16Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 495 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/typedarray/forEachValues - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - local.get $3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - global.get $std/typedarray/forEachValues - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 117 - call $~lib/typedarray/Int32Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 495 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/typedarray/forEachValues - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - local.get $3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i32_i32_i32_=>_none) - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - global.get $std/typedarray/forEachValues - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 118 - call $~lib/typedarray/Uint32Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 495 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/typedarray/forEachValues - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - local.get $3 - i64.extend_i32_s - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_none) - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - global.get $std/typedarray/forEachValues - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 119 - call $~lib/typedarray/Int64Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 495 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/typedarray/forEachValues - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - local.get $3 - i64.extend_i32_s - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $i64_i32_i32_=>_none) - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - global.get $std/typedarray/forEachValues - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 120 - call $~lib/typedarray/Uint64Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 495 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/typedarray/forEachValues - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - local.get $3 - f32.convert_i32_s - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float32Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $f32_i32_i32_=>_none) - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - global.get $std/typedarray/forEachValues - i32.const 0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - i32.const 1 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - i32.const 2 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 121 - call $~lib/typedarray/Float32Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 495 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/typedarray/forEachValues - local.get $1 - call $~lib/array/Array#__get - local.set $3 - local.get $0 - local.get $3 - f64.convert_i32_s - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachSelf - local.get $2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float64Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - local.set $7 - local.get $7 - if - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $f64_i32_i32_=>_none) - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - global.get $std/typedarray/forEachValues - i32.const 0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - global.get $std/typedarray/forEachValues - i32.const 1 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - global.get $std/typedarray/forEachValues - i32.const 2 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 122 - call $~lib/typedarray/Float64Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 495 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 0 - i32.shl - i32.add - local.set $7 - local.get $6 - i32.load8_s - local.set $8 - local.get $6 - local.get $7 - i32.load8_s - i32.store8 - local.get $7 - local.get $8 - i32.store8 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $std/typedarray/testArrayReverseValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $4 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 0 - local.set $6 - loop $for-loop|0 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $5 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $3 - call $~lib/typedarray/Int8Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $6 - loop $for-loop|1 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - call $~lib/typedarray/Int8Array#__get - local.get $0 - local.get $1 - i32.const 1 - i32.sub - local.get $6 - i32.sub - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int8Array#subarray - local.tee $6 - call $~lib/typedarray/Int8Array#reverse - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 7 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - call $~lib/typedarray/Int8Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Uint8Array#get:length - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 0 - i32.shl - i32.add - local.set $7 - local.get $6 - i32.load8_u - local.set $8 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 - local.get $7 - local.get $8 - i32.store8 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - ) - (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - i32.const 12 - i32.const 4 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $5 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 0 - i32.shl - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $std/typedarray/testArrayReverseValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 0 - local.set $6 - loop $for-loop|0 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $5 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $3 - call $~lib/typedarray/Uint8Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $6 - loop $for-loop|1 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - call $~lib/typedarray/Uint8Array#__get - local.get $0 - local.get $1 - i32.const 1 - i32.sub - local.get $6 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Uint8Array#subarray - local.tee $6 - call $~lib/typedarray/Uint8Array#reverse - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 7 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 0 - i32.shl - i32.add - local.set $7 - local.get $6 - i32.load8_u - local.set $8 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 - local.get $7 - local.get $8 - i32.store8 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - i32.const 12 - i32.const 5 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $5 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 0 - i32.shl - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $std/typedarray/testArrayReverseValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 0 - local.set $6 - loop $for-loop|0 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $6 - loop $for-loop|1 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - call $~lib/typedarray/Uint8ClampedArray#__get - local.get $0 - local.get $1 - i32.const 1 - i32.sub - local.get $6 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.tee $6 - call $~lib/typedarray/Uint8ClampedArray#reverse - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.set $7 - local.get $6 - i32.load16_s - local.set $8 - local.get $6 - local.get $7 - i32.load16_s - i32.store16 - local.get $7 - local.get $8 - i32.store16 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - ) - (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - i32.const 12 - i32.const 6 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $5 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 1 - i32.shl - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $std/typedarray/testArrayReverseValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 0 - local.set $6 - loop $for-loop|0 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $5 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $3 - call $~lib/typedarray/Int16Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $6 - loop $for-loop|1 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - call $~lib/typedarray/Int16Array#__get - local.get $0 - local.get $1 - i32.const 1 - i32.sub - local.get $6 - i32.sub - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int16Array#subarray - local.tee $6 - call $~lib/typedarray/Int16Array#reverse - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 7 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - call $~lib/typedarray/Int16Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Uint16Array#get:length - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.set $7 - local.get $6 - i32.load16_u - local.set $8 - local.get $6 - local.get $7 - i32.load16_u - i32.store16 - local.get $7 - local.get $8 - i32.store16 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - ) - (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - i32.const 12 - i32.const 7 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $5 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 1 - i32.shl - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $std/typedarray/testArrayReverseValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint16Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint16Array#constructor - local.tee $4 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 0 - local.set $6 - loop $for-loop|0 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $5 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $3 - call $~lib/typedarray/Uint16Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $6 - loop $for-loop|1 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - call $~lib/typedarray/Uint16Array#__get - local.get $0 - local.get $1 - i32.const 1 - i32.sub - local.get $6 - i32.sub - call $~lib/array/Array#__get - i32.const 65535 - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Uint16Array#subarray - local.tee $6 - call $~lib/typedarray/Uint16Array#reverse - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 7 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.set $7 - local.get $6 - i32.load - local.set $8 - local.get $6 - local.get $7 - i32.load - i32.store - local.get $7 - local.get $8 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $std/typedarray/testArrayReverseValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 0 - local.set $6 - loop $for-loop|0 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $5 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $3 - call $~lib/typedarray/Int32Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $6 - loop $for-loop|1 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - call $~lib/typedarray/Int32Array#__get - local.get $0 - local.get $1 - i32.const 1 - i32.sub - local.get $6 - i32.sub - call $~lib/array/Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int32Array#subarray - local.tee $6 - call $~lib/typedarray/Int32Array#reverse - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 7 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - call $~lib/typedarray/Int32Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Uint32Array#get:length - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.set $7 - local.get $6 - i32.load - local.set $8 - local.get $6 - local.get $7 - i32.load - i32.store - local.get $7 - local.get $8 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - ) - (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - i32.const 12 - i32.const 9 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $5 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 2 - i32.shl - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $std/typedarray/testArrayReverseValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $4 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 0 - local.set $6 - loop $for-loop|0 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $5 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $3 - call $~lib/typedarray/Uint32Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $6 - loop $for-loop|1 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - call $~lib/typedarray/Uint32Array#__get - local.get $0 - local.get $1 - i32.const 1 - i32.sub - local.get $6 - i32.sub - call $~lib/array/Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Uint32Array#subarray - local.tee $6 - call $~lib/typedarray/Uint32Array#reverse - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 7 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - call $~lib/typedarray/Uint32Array#__get - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.set $7 - local.get $6 - i64.load - local.set $8 - local.get $6 - local.get $7 - i64.load - i64.store - local.get $7 - local.get $8 - i64.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - ) - (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - i32.const 12 - i32.const 10 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $5 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 3 - i32.shl - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $std/typedarray/testArrayReverseValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int64Array#constructor - local.tee $4 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 0 - local.set $6 - loop $for-loop|0 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $5 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $3 - call $~lib/typedarray/Int64Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $6 - loop $for-loop|1 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - call $~lib/typedarray/Int64Array#__get - local.get $0 - local.get $1 - i32.const 1 - i32.sub - local.get $6 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int64Array#subarray - local.tee $6 - call $~lib/typedarray/Int64Array#reverse - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 8 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 7 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 6 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Uint64Array#get:length - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.set $7 - local.get $6 - i64.load - local.set $8 - local.get $6 - local.get $7 - i64.load - i64.store - local.get $7 - local.get $8 - i64.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - ) - (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - i32.const 12 - i32.const 11 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $5 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 3 - i32.shl - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $std/typedarray/testArrayReverseValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint64Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint64Array#constructor - local.tee $4 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 0 - local.set $6 - loop $for-loop|0 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $5 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $3 - call $~lib/typedarray/Uint64Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $6 - loop $for-loop|1 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - call $~lib/typedarray/Uint64Array#__get - local.get $0 - local.get $1 - i32.const 1 - i32.sub - local.get $6 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Uint64Array#subarray - local.tee $6 - call $~lib/typedarray/Uint64Array#reverse - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 8 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 7 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 6 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 f32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Float32Array#get:length - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.set $7 - local.get $6 - f32.load - local.set $8 - local.get $6 - local.get $7 - f32.load - f32.store - local.get $7 - local.get $8 - f32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - ) - (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $4 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $6 - local.get $3 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $7 - local.get $6 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.tee $7 - local.get $4 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $3 - i32.const 12 - i32.const 12 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $5 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $7 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $7 - local.get $3 - local.get $4 - i32.sub - i32.const 2 - i32.shl - i32.store offset=8 - local.get $7 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $std/typedarray/testArrayReverseValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.get $1 - call $~lib/typedarray/Float32Array#constructor - local.tee $4 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 0 - local.set $6 - loop $for-loop|0 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $5 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $3 - call $~lib/typedarray/Float32Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $6 - loop $for-loop|1 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - call $~lib/typedarray/Float32Array#__get - local.get $0 - local.get $1 - i32.const 1 - i32.sub - local.get $6 - i32.sub - call $~lib/array/Array#__get - f32.convert_i32_s - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Float32Array#subarray - local.tee $6 - call $~lib/typedarray/Float32Array#reverse - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 8 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 7 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 6 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float64Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 f64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Float64Array#get:length - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $2 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.set $7 - local.get $6 - f64.load - local.set $8 - local.get $6 - local.get $7 - f64.load - f64.store - local.get $7 - local.get $8 - f64.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $std/typedarray/testArrayReverseValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.get $1 - call $~lib/typedarray/Float64Array#constructor - local.tee $4 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 0 - local.set $6 - loop $for-loop|0 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $5 - local.get $6 - local.get $0 - local.get $6 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $3 - call $~lib/typedarray/Float64Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $6 - loop $for-loop|1 - local.get $6 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $3 - local.get $6 - call $~lib/typedarray/Float64Array#__get - local.get $0 - local.get $1 - i32.const 1 - i32.sub - local.get $6 - i32.sub - call $~lib/array/Array#__get - f64.convert_i32_s - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Float64Array#subarray - local.tee $6 - call $~lib/typedarray/Float64Array#reverse - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 8 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Int8Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $4 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Int8Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $4 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Int8Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int8Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 560 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 561 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf|trampoline - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf|trampoline - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 571 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 572 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 573 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 574 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int8Array#subarray - local.set $6 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $4 - i32.const 255 - i32.and - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Uint8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $4 - i32.const 255 - i32.and - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Uint8Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - call $~lib/typedarray/Uint8Array#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 560 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 561 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8Array#lastIndexOf|trampoline - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint8Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint8Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint8Array#lastIndexOf|trampoline - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 571 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 572 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 573 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 574 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Uint8Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Uint8Array#subarray - local.set $6 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Uint8Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Uint8Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $4 - i32.const 255 - i32.and - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $4 - i32.const 255 - i32.and - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 560 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 561 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 571 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 572 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 573 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 574 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Uint8ClampedArray#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $6 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Int16Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $4 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Int16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Int16Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $4 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Int16Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 560 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 561 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf|trampoline - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf|trampoline - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 571 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 572 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 573 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 574 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int16Array#subarray - local.set $6 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $4 - i32.const 65535 - i32.and - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Uint16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $4 - i32.const 65535 - i32.and - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Uint16Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - call $~lib/typedarray/Uint16Array#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint16Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint16Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 560 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 561 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint16Array#lastIndexOf|trampoline - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint16Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint16Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint16Array#lastIndexOf|trampoline - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 571 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 572 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 573 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 574 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Uint16Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Uint16Array#subarray - local.set $6 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Uint16Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Uint16Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Int32Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int32Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 560 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 561 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf|trampoline - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf|trampoline - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 571 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 572 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 573 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 574 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int32Array#subarray - local.set $6 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - i32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Uint32Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - call $~lib/typedarray/Uint32Array#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint32Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 560 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 561 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf|trampoline - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf|trampoline - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 571 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 572 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 573 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 574 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Uint32Array#subarray - local.set $6 - local.get $6 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $4 - i64.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $4 - i64.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Int64Array#lastIndexOf|trampoline (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const -1 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 560 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 561 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 1 - i32.const 10 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 1 - i32.const -100 - call $~lib/typedarray/Int64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf|trampoline - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i64.const -1 - i32.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf|trampoline - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 571 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 572 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 573 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 1 - i32.const 100 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 574 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 1 - i32.const -10 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 1 - i32.const -11 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int64Array#subarray - local.set $6 - local.get $6 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 4 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 5 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 9 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 10 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 5 - i32.const 1 - call $~lib/typedarray/Int64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 5 - i32.const 2 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $4 - i64.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $4 - i64.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Uint64Array#lastIndexOf|trampoline (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - call $~lib/typedarray/Uint64Array#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint64Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint64Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const -1 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 560 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 561 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 1 - i32.const 10 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 1 - i32.const -100 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Uint64Array#lastIndexOf|trampoline - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Uint64Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i64.const -1 - i32.const 0 - call $~lib/typedarray/Uint64Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Uint64Array#lastIndexOf|trampoline - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 571 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 572 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 573 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 1 - i32.const 100 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 574 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 1 - i32.const -10 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i64.const 1 - i32.const -11 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Uint64Array#subarray - local.set $6 - local.get $6 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 4 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 5 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 9 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 10 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 5 - i32.const 1 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i64.const 5 - i32.const 2 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Float32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $4 - f32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Float32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $4 - f32.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Float32Array#lastIndexOf|trampoline (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - call $~lib/typedarray/Float32Array#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - f32.const 0 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 11 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const -1 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 3 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 560 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 3 - i32.const 2 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 561 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 3 - i32.const 3 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 3 - i32.const 4 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 1 - i32.const 10 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 1 - i32.const -100 - call $~lib/typedarray/Float32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - f32.const 0 - i32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf|trampoline - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - f32.const 11 - i32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - f32.const -1 - i32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - f32.const 3 - i32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf|trampoline - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 3 - i32.const 4 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 571 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 3 - i32.const 3 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 572 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 3 - i32.const 2 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 573 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 1 - i32.const 100 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 574 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 1 - i32.const -10 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f32.const 1 - i32.const -11 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Float32Array#subarray - local.set $6 - local.get $6 - f32.const 3 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f32.const 4 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f32.const 5 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f32.const 9 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f32.const 10 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f32.const 11 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f32.const 5 - i32.const 1 - call $~lib/typedarray/Float32Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f32.const 5 - i32.const 2 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Float64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $4 - f64.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Float64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if - i32.const -1 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.set $6 - else - local.get $6 - local.get $7 - i32.ge_s - if - local.get $7 - i32.const 1 - i32.sub - local.set $6 - end - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - i32.const 0 - i32.ge_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $4 - f64.eq - if - local.get $6 - local.set $10 - local.get $5 - call $~lib/rt/pure/__release - local.get $10 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|0 - end - end - i32.const -1 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - end - ) - (func $~lib/typedarray/Float64Array#lastIndexOf|trampoline (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - call $~lib/typedarray/Float64Array#get:length - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float64Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - f64.const 0 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 11 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const -1 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 3 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 560 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 3 - i32.const 2 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 561 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 3 - i32.const 3 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 3 - i32.const 4 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 1 - i32.const 10 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 1 - i32.const -100 - call $~lib/typedarray/Float64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - f64.const 0 - i32.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf|trampoline - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - f64.const 11 - i32.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - f64.const -1 - i32.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf|trampoline - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $3 - f64.const 3 - i32.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf|trampoline - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 3 - i32.const 4 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 571 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 3 - i32.const 3 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 572 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 3 - i32.const 2 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 573 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 1 - i32.const 100 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 574 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 1 - i32.const -10 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - f64.const 1 - i32.const -11 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Float64Array#subarray - local.set $6 - local.get $6 - f64.const 3 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f64.const 4 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 581 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f64.const 5 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f64.const 9 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f64.const 10 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f64.const 11 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f64.const 5 - i32.const 1 - call $~lib/typedarray/Float64Array#indexOf - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 586 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $6 - f64.const 5 - i32.const 2 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 587 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float64Array#includes (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f64) - (local $11 i32) - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Float64Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const 0 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $10 - local.get $10 - local.get $4 - f64.eq - if (result i32) - i32.const 1 - else - local.get $10 - local.get $10 - f64.ne - local.get $4 - local.get $4 - f64.ne - i32.and - end - if - i32.const 1 - local.set $11 - local.get $5 - call $~lib/rt/pure/__release - local.get $11 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const 0 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - end - ) - (func $~lib/typedarray/Float32Array#includes (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f32) - (local $11 i32) - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $3 - local.set $6 - local.get $5 - call $~lib/typedarray/Float32Array#get:length - local.set $7 - local.get $7 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $7 - i32.ge_s - end - if - i32.const 0 - local.set $8 - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 0 - i32.lt_s - if - local.get $7 - local.get $6 - i32.add - local.tee $8 - i32.const 0 - local.tee $9 - local.get $8 - local.get $9 - i32.gt_s - select - local.set $6 - end - local.get $5 - i32.load offset=4 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $8 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $10 - local.get $10 - local.get $4 - f32.eq - if (result i32) - i32.const 1 - else - local.get $10 - local.get $10 - f32.ne - local.get $4 - local.get $4 - f32.ne - i32.and - end - if - i32.const 1 - local.set $11 - local.get $5 - call $~lib/rt/pure/__release - local.get $11 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $while-continue|0 - end - end - i32.const 0 - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - end - ) - (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) - local.get $0 - i32.const 100000 - i32.lt_u - if - local.get $0 - i32.const 100 - i32.lt_u - if - i32.const 1 - local.get $0 - i32.const 10 - i32.ge_u - i32.add - return - else - i32.const 3 - local.get $0 - i32.const 10000 - i32.ge_u - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - return - end - unreachable - else - local.get $0 - i32.const 10000000 - i32.lt_u - if - i32.const 6 - local.get $0 - i32.const 1000000 - i32.ge_u - i32.add - return - else - i32.const 8 - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa32_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - local.set $3 - local.get $3 - if - local.get $1 - i32.const 10000 - i32.div_u - local.set $4 - local.get $1 - i32.const 10000 - i32.rem_u - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $7 - i32.const 1968 - local.get $6 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $8 - i32.const 1968 - local.get $7 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $9 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $9 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $1 - i32.const 100 - i32.div_u - local.set $3 - local.get $1 - i32.const 100 - i32.rem_u - local.set $10 - local.get $3 - local.set $1 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 1968 - local.get $10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 1968 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - else - local.get $2 - i32.const 1 - i32.sub - local.set $2 - i32.const 48 - local.get $1 - i32.add - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store16 - end - ) - (func $~lib/util/number/itoa32 (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.eqz - if - i32.const 1936 - return - end - local.get $0 - i32.const 31 - i32.shr_u - local.set $1 - local.get $1 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - call $~lib/util/number/decimalCount32 - local.get $1 - i32.add - local.set $2 - local.get $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - local.set $6 - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_lut - local.get $1 - if - local.get $3 - i32.const 45 - i32.store16 - end - local.get $3 - call $~lib/rt/pure/__retain - ) - (func $~lib/util/number/itoa (param $0 i32) (result i32) - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/number/itoa32 - return - ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) - (func $~lib/util/number/itoa_stream (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.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 0 - i32.lt_s - local.set $3 - local.get $3 - if - i32.const 0 - local.get $2 - i32.sub - local.set $2 - local.get $0 - i32.const 45 - i32.store16 - end - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 48 - i32.or - i32.store16 - i32.const 1 - local.get $3 - i32.add - return - end - local.get $3 - local.set $4 - local.get $4 - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/number/decimalCount32 - i32.add - local.set $4 - local.get $0 - local.set $7 - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - local.set $6 - local.get $4 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - local.get $4 - ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $0 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - local.set $6 - local.get $2 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.const 1 - i32.shl - local.set $8 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $9 - local.get $9 - local.get $8 - i32.sub - local.set $10 - local.get $10 - i32.eqz - if - i32.const 1920 - call $~lib/rt/pure/__retain - return - end - local.get $8 - i32.eqz - if (result i32) - local.get $9 - local.get $3 - i32.const 1 - i32.shl - i32.eq - else - i32.const 0 - end - if - local.get $0 - call $~lib/rt/pure/__retain - return - end - local.get $10 - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $11 - local.get $11 - local.get $0 - local.get $8 - i32.add - local.get $10 - call $~lib/memory/memory.copy - local.get $11 - call $~lib/rt/pure/__retain - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 1920 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i32.load8_s - call $~lib/util/number/itoa - local.tee $4 - local.set $5 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $6 - i32.const 11 - local.get $6 - i32.add - local.get $3 - i32.mul - i32.const 11 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $6 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int8Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $1 - call $~lib/util/string/joinIntegerArray - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/util/string/compareImpl (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) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.const 4 - i32.ge_u - if (result i32) - local.get $5 - i32.const 7 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.or - i32.eqz - else - i32.const 0 - end - if - block $do-break|0 - loop $do-continue|0 - local.get $5 - i64.load - local.get $6 - i64.load - i64.ne - if - br $do-break|0 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $6 - i32.const 8 - i32.add - local.set $6 - local.get $4 - i32.const 4 - i32.sub - local.set $4 - local.get $4 - i32.const 4 - i32.ge_u - local.set $7 - local.get $7 - br_if $do-continue|0 - end - end - end - loop $while-continue|1 - local.get $4 - local.tee $7 - i32.const 1 - i32.sub - local.set $4 - local.get $7 - local.set $7 - local.get $7 - if - local.get $5 - i32.load16_u - local.set $8 - local.get $6 - i32.load16_u - local.set $9 - local.get $8 - local.get $9 - i32.ne - if - local.get $8 - local.get $9 - i32.sub - local.set $10 - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $10 - return - end - local.get $5 - i32.const 2 - i32.add - local.set $5 - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $while-continue|1 - end - end - i32.const 0 - local.set $7 - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $7 - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end - if - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $3 - local.get $3 - local.get $1 - call $~lib/string/String#get:length - i32.ne - if - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $0 - i32.const 0 - local.get $1 - i32.const 0 - local.get $3 - call $~lib/util/string/compareImpl - i32.eqz - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/typedarray/Int8Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 2384 - call $~lib/typedarray/Int8Array#join - ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2384 - call $~lib/typedarray/Int8Array#join - local.tee $2 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 629 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Int8Array#toString - local.tee $3 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 630 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - 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 - ) - (func $~lib/util/number/utoa32 (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.eqz - if - i32.const 1936 - return - end - local.get $0 - call $~lib/util/number/decimalCount32 - local.set $1 - local.get $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $2 - local.get $2 - local.set $5 - local.get $0 - local.set $4 - local.get $1 - local.set $3 - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/number/utoa32_lut - local.get $2 - call $~lib/rt/pure/__retain - ) - (func $~lib/util/number/itoa (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 (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.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - i32.const 255 - i32.and - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $2 - i32.const 255 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $3 - local.set $4 - local.get $4 - local.get $2 - i32.const 255 - i32.and - call $~lib/util/number/decimalCount32 - i32.add - local.set $4 - local.get $0 - local.set $7 - local.get $2 - i32.const 255 - i32.and - local.set $6 - local.get $4 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - local.get $4 - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 1920 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i32.load8_u - call $~lib/util/number/itoa - local.tee $4 - local.set $5 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $6 - i32.const 10 - local.get $6 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $6 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint8Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Uint8Array#get:length - local.get $1 - call $~lib/util/string/joinIntegerArray - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 2384 - call $~lib/typedarray/Uint8Array#join - ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 5 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2384 - call $~lib/typedarray/Uint8Array#join - local.tee $2 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 629 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Uint8Array#toString - local.tee $3 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 630 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - 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 - ) - (func $~lib/typedarray/Uint8ClampedArray#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.get $1 - call $~lib/util/string/joinIntegerArray - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/typedarray/Uint8ClampedArray#toString (param $0 i32) (result i32) - local.get $0 - i32.const 2384 - call $~lib/typedarray/Uint8ClampedArray#join - ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2384 - call $~lib/typedarray/Uint8ClampedArray#join - local.tee $2 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 629 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#toString - local.tee $3 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 630 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - 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 - ) - (func $~lib/util/number/itoa (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/number/itoa32 - return - ) - (func $~lib/util/number/itoa_stream (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.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 0 - i32.lt_s - local.set $3 - local.get $3 - if - i32.const 0 - local.get $2 - i32.sub - local.set $2 - local.get $0 - i32.const 45 - i32.store16 - end - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 48 - i32.or - i32.store16 - i32.const 1 - local.get $3 - i32.add - return - end - local.get $3 - local.set $4 - local.get $4 - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/util/number/decimalCount32 - i32.add - local.set $4 - local.get $0 - local.set $7 - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - local.set $6 - local.get $4 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - local.get $4 - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 1920 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i32.load16_s - call $~lib/util/number/itoa - local.tee $4 - local.set $5 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $6 - i32.const 11 - local.get $6 - i32.add - local.get $3 - i32.mul - i32.const 11 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $6 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int16Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $1 - call $~lib/util/string/joinIntegerArray - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/typedarray/Int16Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 2384 - call $~lib/typedarray/Int16Array#join - ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2384 - call $~lib/typedarray/Int16Array#join - local.tee $2 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 629 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Int16Array#toString - local.tee $3 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 630 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - 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 - ) - (func $~lib/util/number/itoa (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 (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.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - i32.const 65535 - i32.and - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $2 - i32.const 65535 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $3 - local.set $4 - local.get $4 - local.get $2 - i32.const 65535 - i32.and - call $~lib/util/number/decimalCount32 - i32.add - local.set $4 - local.get $0 - local.set $7 - local.get $2 - i32.const 65535 - i32.and - local.set $6 - local.get $4 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - local.get $4 - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 1920 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i32.load16_u - call $~lib/util/number/itoa - local.tee $4 - local.set $5 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $6 - i32.const 10 - local.get $6 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $6 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint16Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Uint16Array#get:length - local.get $1 - call $~lib/util/string/joinIntegerArray - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/typedarray/Uint16Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 2384 - call $~lib/typedarray/Uint16Array#join - ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 5 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2384 - call $~lib/typedarray/Uint16Array#join - local.tee $2 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 629 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Uint16Array#toString - local.tee $3 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 630 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - 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 - ) - (func $~lib/util/number/itoa (param $0 i32) (result i32) - local.get $0 - call $~lib/util/number/itoa32 - return - ) - (func $~lib/util/number/itoa_stream (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.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - i32.const 0 - i32.lt_s - local.set $3 - local.get $3 - if - i32.const 0 - local.get $2 - i32.sub - local.set $2 - local.get $0 - i32.const 45 - i32.store16 - end - local.get $2 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - local.get $3 - i32.add - return - end - local.get $3 - local.set $4 - local.get $4 - local.get $2 - call $~lib/util/number/decimalCount32 - i32.add - local.set $4 - local.get $0 - local.set $7 - local.get $2 - local.set $6 - local.get $4 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - local.get $4 - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 1920 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i32.load - call $~lib/util/number/itoa - local.tee $4 - local.set $5 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $6 - i32.const 11 - local.get $6 - i32.add - local.get $3 - i32.mul - i32.const 11 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $6 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int32Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $1 - call $~lib/util/string/joinIntegerArray - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/typedarray/Int32Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 2384 - call $~lib/typedarray/Int32Array#join - ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2384 - call $~lib/typedarray/Int32Array#join - local.tee $2 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 629 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Int32Array#toString - local.tee $3 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 630 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - 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 - ) - (func $~lib/util/number/itoa (param $0 i32) (result i32) - local.get $0 - call $~lib/util/number/utoa32 - return - ) - (func $~lib/util/number/itoa_stream (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.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $2 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $3 - local.set $4 - local.get $4 - local.get $2 - call $~lib/util/number/decimalCount32 - i32.add - local.set $4 - local.get $0 - local.set $7 - local.get $2 - local.set $6 - local.get $4 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - local.get $4 - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 1920 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i32.load - call $~lib/util/number/itoa - local.tee $4 - local.set $5 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $6 - i32.const 10 - local.get $6 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $6 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint32Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Uint32Array#get:length - local.get $1 - call $~lib/util/string/joinIntegerArray - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/typedarray/Uint32Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 2384 - call $~lib/typedarray/Uint32Array#join - ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 5 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2384 - call $~lib/typedarray/Uint32Array#join - local.tee $2 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 629 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Uint32Array#toString - local.tee $3 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 630 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - 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 - ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if - local.get $0 - i64.const 1000000000000 - i64.lt_u - if - i32.const 10 - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - return - else - i32.const 13 - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - return - end - unreachable - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if - i32.const 16 - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.add - return - else - i32.const 18 - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa64_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i64) - (local $13 i64) - loop $while-continue|0 - local.get $1 - i64.const 100000000 - i64.ge_u - local.set $3 - local.get $3 - if - local.get $1 - i64.const 100000000 - i64.div_u - local.set $4 - local.get $1 - local.get $4 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 10000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $7 - local.get $6 - i32.const 100 - i32.div_u - local.set $8 - local.get $6 - i32.const 100 - i32.rem_u - local.set $9 - local.get $7 - i32.const 100 - i32.div_u - local.set $10 - local.get $7 - i32.const 100 - i32.rem_u - local.set $11 - i32.const 1968 - local.get $10 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 1968 - local.get $11 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 1968 - local.get $8 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 1968 - local.get $9 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $0 - local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_lut - ) - (func $~lib/util/number/itoa64 (param $0 i64) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - local.get $0 - i64.const 0 - i64.ne - i32.eqz - if - i32.const 1936 - return - end - local.get $0 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.set $1 - local.get $1 - if - i64.const 0 - local.get $0 - i64.sub - local.set $0 - end - local.get $0 - i64.const 4294967295 - i64.le_u - if - local.get $0 - i32.wrap_i64 - local.set $3 - local.get $3 - call $~lib/util/number/decimalCount32 - local.get $1 - i32.add - local.set $4 - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $2 - local.get $2 - local.set $7 - local.get $3 - local.set $6 - local.get $4 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - else - local.get $0 - call $~lib/util/number/decimalCount64High - local.get $1 - i32.add - local.set $4 - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $2 - local.get $2 - local.set $6 - local.get $0 - local.set $8 - local.get $4 - local.set $5 - local.get $6 - local.get $8 - local.get $5 - call $~lib/util/number/utoa64_lut - end - local.get $1 - if - local.get $2 - i32.const 45 - i32.store16 - end - local.get $2 - call $~lib/rt/pure/__retain - ) - (func $~lib/util/number/itoa (param $0 i64) (result i32) - local.get $0 - call $~lib/util/number/itoa64 - return - ) - (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - i64.const 0 - i64.lt_s - local.set $3 - local.get $3 - if - i64.const 0 - local.get $2 - i64.sub - local.set $2 - local.get $0 - i32.const 45 - i32.store16 - end - local.get $2 - i64.const 10 - i64.lt_u - if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $2 - i64.const 48 - i64.or - i64.store16 - i32.const 1 - local.get $3 - i32.add - return - end - local.get $3 - local.set $4 - local.get $2 - i64.const 4294967295 - i64.le_u - if - local.get $2 - i32.wrap_i64 - local.set $5 - local.get $4 - local.get $5 - call $~lib/util/number/decimalCount32 - i32.add - local.set $4 - local.get $0 - local.set $8 - local.get $5 - local.set $7 - local.get $4 - local.set $6 - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/number/utoa32_lut - else - local.get $4 - local.get $2 - call $~lib/util/number/decimalCount64High - i32.add - local.set $4 - local.get $0 - local.set $7 - local.get $2 - local.set $9 - local.get $4 - local.set $6 - local.get $7 - local.get $9 - local.get $6 - call $~lib/util/number/utoa64_lut - end - local.get $4 - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i64) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 1920 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i64.load - call $~lib/util/number/itoa - local.tee $4 - local.set $5 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $6 - i32.const 21 - local.get $6 - i32.add - local.get $3 - i32.mul - i32.const 21 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $6 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Int64Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $1 - call $~lib/util/string/joinIntegerArray - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/typedarray/Int64Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 2384 - call $~lib/typedarray/Int64Array#join - ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2384 - call $~lib/typedarray/Int64Array#join - local.tee $2 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 629 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Int64Array#toString - local.tee $3 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 630 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - 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 - ) - (func $~lib/util/number/utoa64 (param $0 i64) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i64) - local.get $0 - i64.const 0 - i64.ne - i32.eqz - if - i32.const 1936 - return - end - local.get $0 - i64.const 4294967295 - i64.le_u - if - local.get $0 - i32.wrap_i64 - local.set $2 - local.get $2 - call $~lib/util/number/decimalCount32 - local.set $3 - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $1 - local.get $1 - local.set $6 - local.get $2 - local.set $5 - local.get $3 - local.set $4 - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_lut - else - local.get $0 - call $~lib/util/number/decimalCount64High - local.set $3 - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $1 - local.get $1 - local.set $5 - local.get $0 - local.set $7 - local.get $3 - local.set $4 - local.get $5 - local.get $7 - local.get $4 - call $~lib/util/number/utoa64_lut - end - local.get $1 - call $~lib/rt/pure/__retain - ) - (func $~lib/util/number/itoa (param $0 i64) (result i32) - local.get $0 - call $~lib/util/number/utoa64 - return - ) - (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $0 - i32.const 0 - local.set $3 - local.get $2 - i64.const 10 - i64.lt_u - if - local.get $0 - local.get $2 - i64.const 48 - i64.or - i64.store16 - i32.const 1 - return - end - local.get $3 - local.set $4 - local.get $2 - i64.const 4294967295 - i64.le_u - if - local.get $2 - i32.wrap_i64 - local.set $5 - local.get $4 - local.get $5 - call $~lib/util/number/decimalCount32 - i32.add - local.set $4 - local.get $0 - local.set $8 - local.get $5 - local.set $7 - local.get $4 - local.set $6 - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/number/utoa32_lut - else - local.get $4 - local.get $2 - call $~lib/util/number/decimalCount64High - i32.add - local.set $4 - local.get $0 - local.set $7 - local.get $2 - local.set $9 - local.get $4 - local.set $6 - local.get $7 - local.get $9 - local.get $6 - call $~lib/util/number/utoa64_lut - end - local.get $4 - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i64) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 1920 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i64.load - call $~lib/util/number/itoa - local.tee $4 - local.set $5 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $6 - i32.const 20 - local.get $6 - i32.add - local.get $3 - i32.mul - i32.const 20 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $6 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/itoa_stream - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Uint64Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Uint64Array#get:length - local.get $1 - call $~lib/util/string/joinIntegerArray - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/typedarray/Uint64Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 2384 - call $~lib/typedarray/Uint64Array#join - ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2384 - call $~lib/typedarray/Uint64Array#join - local.tee $2 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 629 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Uint64Array#toString - local.tee $3 - i32.const 2416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 630 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - 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 - ) - (func $~lib/util/number/genDigits (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) - (local $10 i64) - (local $11 i32) - (local $12 i32) - (local $13 i64) - (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $18 i32) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i64) - (local $24 i32) - (local $25 i32) - (local $26 i32) - (local $27 i32) - (local $28 i64) - i32.const 0 - local.get $4 - i32.sub - local.set $7 - i64.const 1 - local.get $7 - i64.extend_i32_s - i64.shl - local.set $8 - local.get $8 - i64.const 1 - i64.sub - local.set $9 - local.get $3 - local.get $1 - i64.sub - local.set $10 - local.get $4 - local.set $11 - local.get $3 - local.get $7 - i64.extend_i32_s - i64.shr_u - i32.wrap_i64 - local.set $12 - local.get $3 - local.get $9 - i64.and - local.set $13 - local.get $12 - call $~lib/util/number/decimalCount32 - local.set $14 - local.get $6 - local.set $15 - loop $while-continue|0 - local.get $14 - i32.const 0 - i32.gt_s - local.set $16 - local.get $16 - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $14 - local.set $18 - local.get $18 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $18 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $18 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $18 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $18 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $18 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $18 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $18 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $18 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $18 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $12 - i32.const 1000000000 - i32.div_u - local.set $17 - local.get $12 - i32.const 1000000000 - i32.rem_u - local.set $12 - br $break|1 - end - local.get $12 - i32.const 100000000 - i32.div_u - local.set $17 - local.get $12 - i32.const 100000000 - i32.rem_u - local.set $12 - br $break|1 - end - local.get $12 - i32.const 10000000 - i32.div_u - local.set $17 - local.get $12 - i32.const 10000000 - i32.rem_u - local.set $12 - br $break|1 - end - local.get $12 - i32.const 1000000 - i32.div_u - local.set $17 - local.get $12 - i32.const 1000000 - i32.rem_u - local.set $12 - br $break|1 - end - local.get $12 - i32.const 100000 - i32.div_u - local.set $17 - local.get $12 - i32.const 100000 - i32.rem_u - local.set $12 - br $break|1 - end - local.get $12 - i32.const 10000 - i32.div_u - local.set $17 - local.get $12 - i32.const 10000 - i32.rem_u - local.set $12 - br $break|1 - end - local.get $12 - i32.const 1000 - i32.div_u - local.set $17 - local.get $12 - i32.const 1000 - i32.rem_u - local.set $12 - br $break|1 - end - local.get $12 - i32.const 100 - i32.div_u - local.set $17 - local.get $12 - i32.const 100 - i32.rem_u - local.set $12 - br $break|1 - end - local.get $12 - i32.const 10 - i32.div_u - local.set $17 - local.get $12 - i32.const 10 - i32.rem_u - local.set $12 - br $break|1 - end - local.get $12 - local.set $17 - i32.const 0 - local.set $12 - br $break|1 - end - i32.const 0 - local.set $17 - br $break|1 - end - local.get $17 - local.get $15 - i32.or - if - local.get $0 - local.get $15 - local.tee $18 - i32.const 1 - i32.add - local.set $15 - local.get $18 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $17 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $14 - i32.const 1 - i32.sub - local.set $14 - local.get $12 - i64.extend_i32_u - local.get $7 - i64.extend_i32_s - i64.shl - local.get $13 - i64.add - local.set $19 - local.get $19 - local.get $5 - i64.le_u - if - global.get $~lib/util/number/_K - local.get $14 - i32.add - global.set $~lib/util/number/_K - local.get $0 - local.set $24 - local.get $15 - local.set $18 - local.get $5 - local.set $23 - local.get $19 - local.set $22 - i32.const 3520 - local.get $14 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $7 - i64.extend_i32_s - i64.shl - local.set $21 - local.get $10 - local.set $20 - local.get $24 - local.get $18 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $25 - local.get $25 - i32.load16_u - local.set $26 - loop $while-continue|3 - local.get $22 - local.get $20 - i64.lt_u - if (result i32) - local.get $23 - local.get $22 - i64.sub - local.get $21 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $22 - local.get $21 - i64.add - local.get $20 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $20 - local.get $22 - i64.sub - local.get $22 - local.get $21 - i64.add - local.get $20 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - local.set $27 - local.get $27 - if - local.get $26 - i32.const 1 - i32.sub - local.set $26 - local.get $22 - local.get $21 - i64.add - local.set $22 - br $while-continue|3 - end - end - local.get $25 - local.get $26 - i32.store16 - local.get $15 - return - end - br $while-continue|0 - end - end - loop $while-continue|4 - i32.const 1 - local.set $16 - local.get $16 - if - local.get $13 - i64.const 10 - i64.mul - local.set $13 - local.get $5 - i64.const 10 - i64.mul - local.set $5 - local.get $13 - local.get $7 - i64.extend_i32_s - i64.shr_u - local.set $23 - local.get $23 - local.get $15 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $0 - local.get $15 - local.tee $26 - i32.const 1 - i32.add - local.set $15 - local.get $26 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $23 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $13 - local.get $9 - i64.and - local.set $13 - local.get $14 - i32.const 1 - i32.sub - local.set $14 - local.get $13 - local.get $5 - i64.lt_u - if - global.get $~lib/util/number/_K - local.get $14 - i32.add - global.set $~lib/util/number/_K - local.get $10 - i32.const 3520 - i32.const 0 - local.get $14 - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u - i64.mul - local.set $10 - local.get $0 - local.set $18 - local.get $15 - local.set $27 - local.get $5 - local.set $28 - local.get $13 - local.set $22 - local.get $8 - local.set $21 - local.get $10 - local.set $20 - local.get $18 - local.get $27 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $26 - local.get $26 - i32.load16_u - local.set $25 - loop $while-continue|6 - local.get $22 - local.get $20 - i64.lt_u - if (result i32) - local.get $28 - local.get $22 - i64.sub - local.get $21 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $22 - local.get $21 - i64.add - local.get $20 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $20 - local.get $22 - i64.sub - local.get $22 - local.get $21 - i64.add - local.get $20 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - local.set $24 - local.get $24 - if - local.get $25 - i32.const 1 - i32.sub - local.set $25 - local.get $22 - local.get $21 - i64.add - local.set $22 - br $while-continue|6 - end - end - local.get $26 - local.get $25 - i32.store16 - local.get $15 - return - end - br $while-continue|4 - end - end - unreachable - ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $2 - i32.eqz - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 46 - i32.const 48 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 2 - i32.add - return - end - local.get $1 - local.get $2 - i32.add - local.set $3 - local.get $1 - local.get $3 - i32.le_s - if (result i32) - local.get $3 - i32.const 21 - i32.le_s - else - i32.const 0 - end - if - local.get $1 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 46 - i32.const 48 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $3 - i32.const 2 - i32.add - return - else - local.get $3 - i32.const 0 - i32.gt_s - if (result i32) - local.get $3 - i32.const 21 - i32.le_s - else - i32.const 0 - end - if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $4 - local.get $4 - i32.const 2 - i32.add - local.get $4 - i32.const 0 - local.get $2 - i32.sub - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 - i32.add - return - else - i32.const -6 - local.get $3 - i32.lt_s - if (result i32) - local.get $3 - i32.const 0 - i32.le_s - else - i32.const 0 - end - if - i32.const 2 - local.get $3 - i32.sub - local.set $4 - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - i32.const 48 - i32.const 46 - i32.const 16 - i32.shl - i32.or - i32.store - i32.const 2 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $4 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $1 - local.get $4 - i32.add - return - else - local.get $1 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $6 - local.get $6 - i32.const 0 - i32.lt_s - local.set $4 - local.get $4 - if - i32.const 0 - local.get $6 - i32.sub - local.set $6 - end - local.get $6 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $7 - local.get $5 - local.set $10 - local.get $6 - local.set $9 - local.get $7 - local.set $8 - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/number/utoa32_lut - local.get $5 - i32.const 45 - i32.const 43 - local.get $4 - select - i32.store16 - local.get $7 - local.set $1 - local.get $1 - i32.const 2 - i32.add - return - else - local.get $1 - i32.const 1 - i32.shl - local.set $7 - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $7 - i32.const 2 - i32.sub - call $~lib/memory/memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $7 - i32.add - i32.const 101 - i32.store16 offset=2 - local.get $1 - local.get $0 - local.get $7 - i32.add - i32.const 4 - i32.add - local.set $9 - local.get $3 - i32.const 1 - i32.sub - local.set $8 - local.get $8 - i32.const 0 - i32.lt_s - local.set $4 - local.get $4 - if - i32.const 0 - local.get $8 - i32.sub - local.set $8 - end - local.get $8 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $5 - local.get $9 - local.set $11 - local.get $8 - local.set $6 - local.get $5 - local.set $10 - local.get $11 - local.get $6 - local.get $10 - call $~lib/util/number/utoa32_lut - local.get $9 - i32.const 45 - i32.const 43 - local.get $4 - select - i32.store16 - local.get $5 - i32.add - local.set $1 - local.get $1 - i32.const 2 - i32.add - return - end - unreachable - end - unreachable - end - unreachable - end - unreachable - ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i64) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i64) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 f64) - (local $17 i64) - (local $18 i64) - (local $19 i64) - (local $20 i64) - (local $21 i64) - (local $22 i64) - (local $23 i64) - (local $24 i64) - (local $25 i64) - (local $26 i32) - (local $27 i64) - (local $28 i32) - local.get $1 - f64.const 0 - f64.lt - local.set $2 - local.get $2 - if - local.get $1 - f64.neg - local.set $1 - local.get $0 - i32.const 45 - i32.store16 - end - local.get $1 - local.set $5 - local.get $0 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i64.reinterpret_f64 - local.set $6 - local.get $6 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $7 - local.get $6 - i64.const 4503599627370495 - i64.and - local.set $8 - local.get $7 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $8 - i64.add - local.set $9 - local.get $7 - i32.const 1 - local.get $7 - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $7 - local.get $9 - local.set $11 - local.get $7 - local.set $10 - local.get $11 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $12 - local.get $10 - i32.const 1 - i32.sub - local.set $13 - local.get $12 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $12 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $12 - local.get $13 - local.get $14 - i32.sub - local.set $13 - i32.const 1 - local.get $11 - i64.const 4503599627370496 - i64.eq - i32.add - local.set $15 - local.get $12 - global.set $~lib/util/number/_frc_plus - local.get $11 - local.get $15 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $10 - local.get $15 - i32.sub - local.get $13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $10 - i32.const -61 - local.get $10 - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $16 - local.get $16 - i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 - f64.convert_i32_s - local.get $16 - f64.ne - i32.add - local.set $15 - local.get $15 - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $14 - i32.const 348 - local.get $14 - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 2608 - local.get $14 - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 3328 - local.get $14 - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $9 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $9 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $9 - local.get $7 - local.get $14 - i32.sub - local.set $7 - global.get $~lib/util/number/_frc_pow - local.set $12 - global.get $~lib/util/number/_exp_pow - local.set $15 - local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $24 - local.get $24 - i64.const 2147483647 - i64.add - local.set $24 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $24 - i64.const 32 - i64.shr_u - local.set $24 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $24 - i64.add - local.set $24 - local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 - i32.add - i32.const 64 - i32.add - local.set $10 - global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $23 - local.get $11 - i64.const 4294967295 - i64.and - local.set $22 - local.get $17 - i64.const 32 - i64.shr_u - local.set $21 - local.get $11 - i64.const 32 - i64.shr_u - local.set $20 - local.get $23 - local.get $22 - i64.mul - local.set $19 - local.get $21 - local.get $22 - i64.mul - local.get $19 - i64.const 32 - i64.shr_u - i64.add - local.set $18 - local.get $23 - local.get $20 - i64.mul - local.get $18 - i64.const 4294967295 - i64.and - i64.add - local.set $25 - local.get $25 - i64.const 2147483647 - i64.add - local.set $25 - local.get $18 - i64.const 32 - i64.shr_u - local.set $18 - local.get $25 - i64.const 32 - i64.shr_u - local.set $25 - local.get $21 - local.get $20 - i64.mul - local.get $18 - i64.add - local.get $25 - i64.add - i64.const 1 - i64.sub - local.set $25 - global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 - i32.add - i32.const 64 - i32.add - local.set $26 - global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $27 - local.get $27 - i64.const 2147483647 - i64.add - local.set $27 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $27 - i64.const 32 - i64.shr_u - local.set $27 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $27 - i64.add - i64.const 1 - i64.add - local.set $27 - local.get $25 - local.get $27 - i64.sub - local.set $23 - local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 - local.get $3 - call $~lib/util/number/genDigits - local.set $28 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $28 - local.get $2 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.set $28 - local.get $28 - local.get $2 - i32.add - ) - (func $~lib/util/number/dtoa (param $0 f64) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - f64.const 0 - f64.eq - if - i32.const 2464 - return - end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $0 - local.get $0 - f64.ne - if - i32.const 2496 - return - end - i32.const 2528 - i32.const 2576 - local.get $0 - f64.const 0 - f64.lt - select - call $~lib/rt/pure/__retain - return - end - i32.const 28 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $1 - local.get $1 - local.get $0 - call $~lib/util/number/dtoa_core - local.set $2 - local.get $2 - i32.const 28 - i32.eq - if - local.get $1 - call $~lib/rt/pure/__retain - return - end - local.get $1 - i32.const 0 - local.get $2 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/tlsf/__free - local.get $3 - ) - (func $~lib/util/number/dtoa_stream (param $0 i32) (param $1 i32) (param $2 f64) (result i32) - (local $3 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $0 - local.get $2 - f64.const 0 - f64.eq - if - local.get $0 - i32.const 48 - i32.store16 - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 - return - end - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $2 - local.get $2 - f64.ne - if - local.get $0 - i32.const 78 - i32.store16 - local.get $0 - i32.const 97 - i32.store16 offset=2 - local.get $0 - i32.const 78 - i32.store16 offset=4 - i32.const 3 - return - else - local.get $2 - f64.const 0 - f64.lt - local.set $3 - local.get $3 - if - local.get $0 - i32.const 45 - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - end - local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 - i32.const 8 - local.get $3 - i32.add - return - end - unreachable - end - local.get $0 - local.get $2 - call $~lib/util/number/dtoa_core - ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 1920 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa - local.tee $4 - local.set $5 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $6 - i32.const 28 - local.get $6 - i32.add - local.get $3 - i32.mul - i32.const 28 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - f64.promote_f32 - call $~lib/util/number/dtoa_stream - i32.add - local.set $9 - local.get $6 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - f64.promote_f32 - call $~lib/util/number/dtoa_stream - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Float32Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Float32Array#get:length - local.get $1 - call $~lib/util/string/joinFloatArray - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/typedarray/Float32Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 2384 - call $~lib/typedarray/Float32Array#join - ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 5 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 4 - f32.const 5 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2384 - call $~lib/typedarray/Float32Array#join - local.tee $2 - i32.const 3584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 626 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Float32Array#toString - local.tee $3 - i32.const 3584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 627 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - 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 - ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f64) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 1920 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - f64.load - call $~lib/util/number/dtoa - local.tee $4 - local.set $5 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $6 - i32.const 28 - local.get $6 - i32.add - local.get $3 - i32.mul - i32.const 28 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/dtoa_stream - i32.add - local.set $9 - local.get $6 - if - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - local.get $10 - call $~lib/util/number/dtoa_stream - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/typedarray/Float64Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Float64Array#get:length - local.get $1 - call $~lib/util/string/joinFloatArray - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/typedarray/Float64Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 2384 - call $~lib/typedarray/Float64Array#join - ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - i32.const 5 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2384 - call $~lib/typedarray/Float64Array#join - local.tee $2 - i32.const 3584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 626 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/typedarray/Float64Array#toString - local.tee $3 - i32.const 3584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 627 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - 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 - ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 1073741808 - i32.gt_u - if - i32.const 32 - i32.const 80 - i32.const 54 - i32.const 43 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $2 - local.get $2 - i32.const 0 - local.get $1 - call $~lib/memory/memory.fill - local.get $2 - call $~lib/rt/pure/__retain - ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - ) - (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 0 - i32.and - i32.or - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 0 - i32.and - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 0 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - i32.const 12 - i32.const 4 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 - local.get $5 - call $~lib/rt/pure/__retain - i32.store - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - local.set $8 - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Uint8Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array.wrap - ) - (func $~lib/arraybuffer/ArrayBuffer#slice (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.get $0 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $1 - i32.add - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - else - local.get $1 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - end - local.set $1 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $2 - i32.add - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - else - local.get $2 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - end - local.set $2 - local.get $2 - local.get $1 - i32.sub - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.set $6 - local.get $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $7 - local.get $7 - local.get $0 - local.get $1 - i32.add - local.get $6 - call $~lib/memory/memory.copy - local.get $7 - call $~lib/rt/pure/__retain - ) - (func $~lib/typedarray/Int8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 0 - i32.and - i32.or - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 0 - i32.and - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 0 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - i32.const 12 - i32.const 3 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 - local.get $5 - call $~lib/rt/pure/__retain - i32.store - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - local.set $8 - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Int8Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int8Array.wrap - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $std/typedarray/testArrayWrapValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.load - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $6 - i32.const 0 - local.set $7 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array.wrap|trampoline - local.set $5 - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - local.set $7 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $3 - local.get $5 - call $~lib/typedarray/Int8Array#__get - local.get $7 - local.get $5 - call $~lib/typedarray/Int8Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $std/typedarray/testArrayWrapValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.load - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $6 - i32.const 0 - local.set $7 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap|trampoline - local.set $5 - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - local.set $7 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $3 - local.get $5 - call $~lib/typedarray/Uint8Array#__get - local.get $7 - local.get $5 - call $~lib/typedarray/Uint8Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 0 - i32.and - i32.or - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 0 - i32.and - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 0 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - i32.const 12 - i32.const 5 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 - local.get $5 - call $~lib/rt/pure/__retain - i32.store - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - local.set $8 - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Uint8ClampedArray.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8ClampedArray.wrap - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $std/typedarray/testArrayWrapValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.load - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $6 - i32.const 0 - local.set $7 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray.wrap|trampoline - local.set $5 - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - local.set $7 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $3 - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#__get - local.get $7 - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 1 - i32.and - i32.or - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 1 - i32.and - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 1 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - i32.const 12 - i32.const 6 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 - local.get $5 - call $~lib/rt/pure/__retain - i32.store - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - local.set $8 - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Int16Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array.wrap - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $std/typedarray/testArrayWrapValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.load - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $6 - i32.const 0 - local.set $7 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array.wrap|trampoline - local.set $5 - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - local.set $7 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $3 - local.get $5 - call $~lib/typedarray/Int16Array#__get - local.get $7 - local.get $5 - call $~lib/typedarray/Int16Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 1 - i32.and - i32.or - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 1 - i32.and - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 1 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - i32.const 12 - i32.const 7 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 - local.get $5 - call $~lib/rt/pure/__retain - i32.store - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - local.set $8 - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Uint16Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint16Array.wrap - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $std/typedarray/testArrayWrapValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint16Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.load - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $6 - i32.const 0 - local.set $7 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint16Array.wrap|trampoline - local.set $5 - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - local.set $7 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $3 - local.get $5 - call $~lib/typedarray/Uint16Array#__get - local.get $7 - local.get $5 - call $~lib/typedarray/Uint16Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 3 - i32.and - i32.or - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 3 - i32.and - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 2 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - i32.const 12 - i32.const 8 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 - local.get $5 - call $~lib/rt/pure/__retain - i32.store - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - local.set $8 - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Int32Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int32Array.wrap - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $std/typedarray/testArrayWrapValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.load - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $6 - i32.const 0 - local.set $7 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array.wrap|trampoline - local.set $5 - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - local.set $7 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $3 - local.get $5 - call $~lib/typedarray/Int32Array#__get - local.get $7 - local.get $5 - call $~lib/typedarray/Int32Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 3 - i32.and - i32.or - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 3 - i32.and - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 2 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - i32.const 12 - i32.const 9 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 - local.get $5 - call $~lib/rt/pure/__retain - i32.store - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - local.set $8 - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Uint32Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint32Array.wrap - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $std/typedarray/testArrayWrapValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.load - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $6 - i32.const 0 - local.set $7 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint32Array.wrap|trampoline - local.set $5 - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - local.set $7 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $3 - local.get $5 - call $~lib/typedarray/Uint32Array#__get - local.get $7 - local.get $5 - call $~lib/typedarray/Uint32Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 7 - i32.and - i32.or - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 7 - i32.and - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 3 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - i32.const 12 - i32.const 10 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 - local.get $5 - call $~lib/rt/pure/__retain - i32.store - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - local.set $8 - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Int64Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array.wrap - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $std/typedarray/testArrayWrapValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.load - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $6 - i32.const 0 - local.set $7 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int64Array.wrap|trampoline - local.set $5 - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - local.set $7 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $3 - local.get $5 - call $~lib/typedarray/Int64Array#__get - local.get $7 - local.get $5 - call $~lib/typedarray/Int64Array#__get - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 7 - i32.and - i32.or - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 7 - i32.and - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 3 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - i32.const 12 - i32.const 11 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 - local.get $5 - call $~lib/rt/pure/__retain - i32.store - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - local.set $8 - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Uint64Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint64Array.wrap - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $std/typedarray/testArrayWrapValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Uint64Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.load - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $6 - i32.const 0 - local.set $7 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint64Array.wrap|trampoline - local.set $5 - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - local.set $7 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $3 - local.get $5 - call $~lib/typedarray/Uint64Array#__get - local.get $7 - local.get $5 - call $~lib/typedarray/Uint64Array#__get - i64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float32Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 3 - i32.and - i32.or - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 3 - i32.and - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 2 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - i32.const 12 - i32.const 12 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 - local.get $5 - call $~lib/rt/pure/__retain - i32.store - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - local.set $8 - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Float32Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array.wrap - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $std/typedarray/testArrayWrapValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.load - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $6 - i32.const 0 - local.set $7 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Float32Array.wrap|trampoline - local.set $5 - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - local.set $7 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $3 - local.get $5 - call $~lib/typedarray/Float32Array#__get - local.get $7 - local.get $5 - call $~lib/typedarray/Float32Array#__get - f32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 7 - i32.and - i32.or - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 7 - i32.and - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - else - local.get $3 - i32.const 3 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - local.get $5 - call $~lib/rt/pure/__release - i32.const 32 - i32.const 432 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - i32.const 12 - i32.const 13 - call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $8 - local.get $5 - call $~lib/rt/pure/__retain - i32.store - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - local.set $8 - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - ) - (func $~lib/typedarray/Float64Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float64Array.wrap - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $std/typedarray/testArrayWrapValues - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - local.set $1 - i32.const 0 - local.get $1 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 - call $~lib/rt/pure/__retain - local.set $3 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $3 - local.get $4 - local.get $0 - local.get $4 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.load - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $3 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $6 - i32.const 0 - local.set $7 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Float64Array.wrap|trampoline - local.set $5 - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - local.set $7 - i32.const 0 - local.set $5 - loop $for-loop|1 - local.get $5 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $3 - local.get $5 - call $~lib/typedarray/Float64Array#__get - local.get $7 - local.get $5 - call $~lib/typedarray/Float64Array#__get - f64.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - call $~lib/typedarray/Int8Array#__get - local.set $5 - local.get $1 - local.get $3 - call $~lib/array/Array#__unchecked_get - local.set $6 - local.get $5 - local.get $6 - i32.ne - if - i32.const 4048 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - local.get $6 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_s - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_s - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.set $1 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.set $2 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - i32.const 10 - call $~lib/typedarray/Int8Array#constructor - local.tee $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $4 - global.get $std/typedarray/setSource1 - i32.const 0 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 14 - i32.const 4016 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $4 - global.get $std/typedarray/setSource2 - i32.const 3 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 14 - i32.const 4096 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $4 - local.get $0 - i32.const 6 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 14 - i32.const 4128 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $4 - global.get $std/typedarray/setSource3 - i32.const 2 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 14 - i32.const 4160 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $2 - i32.const 4 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource7 - i32.const 7 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 14 - i32.const 4192 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - i32.load8_u - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Uint8Array#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - call $~lib/typedarray/Uint8Array#__get - local.set $5 - local.get $1 - local.get $3 - call $~lib/array/Array#__unchecked_get - local.set $6 - local.get $5 - local.get $6 - i32.ne - if - i32.const 4256 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_u - local.get $6 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_u - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_u - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.set $1 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.set $2 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - i32.const 10 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $4 - global.get $std/typedarray/setSource1 - i32.const 0 - call $~lib/typedarray/Uint8Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 4224 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $4 - global.get $std/typedarray/setSource2 - i32.const 3 - call $~lib/typedarray/Uint8Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 4304 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $4 - local.get $0 - i32.const 6 - call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int64Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 4336 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $4 - global.get $std/typedarray/setSource3 - i32.const 2 - call $~lib/typedarray/Uint8Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 4368 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $2 - i32.const 4 - call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource7 - i32.const 7 - call $~lib/typedarray/Uint8Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 4400 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $11 - i32.sub - i32.const 31 - i32.shr_s - local.get $11 - i32.or - i32.and - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#__get - local.set $5 - local.get $1 - local.get $3 - call $~lib/array/Array#__unchecked_get - local.set $6 - local.get $5 - local.get $6 - i32.ne - if - i32.const 4464 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_u - local.get $6 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $11 - f32.min - f32.max - i32.trunc_f32_u - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i64) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.wrap_i64 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i64.extend_i32_s - i32.const 255 - local.get $11 - i32.wrap_i64 - i32.sub - i32.const 31 - i32.shr_s - i64.extend_i32_s - local.get $11 - i64.or - i64.and - i64.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - f64.const 0 - f64.const 255 - local.get $11 - f64.min - f64.max - i32.trunc_f64_u - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $11 - i32.sub - i32.const 31 - i32.shr_s - local.get $11 - i32.or - i32.and - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $11 - i32.sub - i32.const 31 - i32.shr_s - local.get $11 - i32.or - i32.and - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.set $1 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.set $2 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $4 - global.get $std/typedarray/setSource1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 4432 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $4 - global.get $std/typedarray/setSource2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 4528 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $4 - local.get $0 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 4560 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $4 - global.get $std/typedarray/setSource3 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 4592 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $2 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource7 - i32.const 7 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 4624 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - call $~lib/typedarray/Int16Array#__get - local.set $5 - local.get $1 - local.get $3 - call $~lib/array/Array#__unchecked_get - local.set $6 - local.get $5 - local.get $6 - i32.ne - if - i32.const 4704 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - local.get $6 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_s - else - i32.const 0 - end - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_s - else - i32.const 0 - end - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.set $1 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.set $2 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - i32.const 10 - call $~lib/typedarray/Int16Array#constructor - local.tee $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $4 - global.get $std/typedarray/setSource1 - i32.const 0 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 1 - i32.const 22 - i32.const 4656 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource2 - i32.const 3 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 1 - i32.const 22 - i32.const 4752 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $4 - local.get $0 - i32.const 6 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> - local.get $4 - i32.const 10 - i32.const 1 - i32.const 22 - i32.const 4800 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource3 - i32.const 2 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 1 - i32.const 22 - i32.const 4848 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $2 - i32.const 4 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource7 - i32.const 7 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 1 - i32.const 22 - i32.const 4896 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Uint16Array#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - call $~lib/typedarray/Uint16Array#__get - local.set $5 - local.get $1 - local.get $3 - call $~lib/array/Array#__unchecked_get - local.set $6 - local.get $5 - local.get $6 - i32.ne - if - i32.const 4992 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_u - local.get $6 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_u - else - i32.const 0 - end - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_u - else - i32.const 0 - end - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store16 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.set $1 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.set $2 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - i32.const 10 - call $~lib/typedarray/Uint16Array#constructor - local.tee $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $4 - global.get $std/typedarray/setSource1 - i32.const 0 - call $~lib/typedarray/Uint16Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 1 - i32.const 23 - i32.const 4944 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $4 - global.get $std/typedarray/setSource2 - i32.const 3 - call $~lib/typedarray/Uint16Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 1 - i32.const 23 - i32.const 5040 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $4 - local.get $0 - i32.const 6 - call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> - local.get $4 - i32.const 10 - i32.const 1 - i32.const 23 - i32.const 5088 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $4 - global.get $std/typedarray/setSource3 - i32.const 2 - call $~lib/typedarray/Uint16Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 1 - i32.const 23 - i32.const 5136 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $2 - i32.const 4 - call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource7 - i32.const 7 - call $~lib/typedarray/Uint16Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 1 - i32.const 23 - i32.const 5184 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - call $~lib/typedarray/Int32Array#__get - local.set $5 - local.get $1 - local.get $3 - call $~lib/array/Array#__unchecked_get - local.set $6 - local.get $5 - local.get $6 - i32.ne - if - i32.const 5296 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - local.get $6 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_s - else - i32.const 0 - end - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store32 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_s - else - i32.const 0 - end - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.set $1 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.set $2 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - i32.const 10 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $4 - global.get $std/typedarray/setSource1 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 15 - i32.const 5232 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $4 - global.get $std/typedarray/setSource2 - i32.const 3 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 15 - i32.const 5344 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $4 - local.get $0 - i32.const 6 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 15 - i32.const 5408 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $4 - global.get $std/typedarray/setSource3 - i32.const 2 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 15 - i32.const 5472 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $2 - i32.const 4 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource7 - i32.const 7 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 15 - i32.const 5536 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Uint32Array#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - call $~lib/typedarray/Uint32Array#__get - local.set $5 - local.get $1 - local.get $3 - call $~lib/array/Array#__unchecked_get - local.set $6 - local.get $5 - local.get $6 - i32.ne - if - i32.const 5664 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i32_u - local.get $6 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $11 - i32.trunc_f32_u - else - i32.const 0 - end - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store32 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $11 - i32.trunc_f64_u - else - i32.const 0 - end - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.set $1 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.set $2 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - i32.const 10 - call $~lib/typedarray/Uint32Array#constructor - local.tee $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $4 - global.get $std/typedarray/setSource1 - i32.const 0 - call $~lib/typedarray/Uint32Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 24 - i32.const 5600 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $4 - global.get $std/typedarray/setSource2 - i32.const 3 - call $~lib/typedarray/Uint32Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 24 - i32.const 5712 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $4 - local.get $0 - i32.const 6 - call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 24 - i32.const 5776 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $4 - global.get $std/typedarray/setSource3 - i32.const 2 - call $~lib/typedarray/Uint32Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 24 - i32.const 5840 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $2 - i32.const 4 - call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource7 - i32.const 7 - call $~lib/typedarray/Uint32Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 24 - i32.const 5904 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i64.load32_s - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i64) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - call $~lib/typedarray/Int64Array#__get - local.set $5 - local.get $1 - local.get $3 - call $~lib/array/Array#__unchecked_get - local.set $6 - local.get $5 - local.get $6 - i64.ne - if - i32.const 6064 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i64_s - local.get $6 - f64.convert_i64_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $11 - i64.trunc_f32_s - else - i64.const 0 - end - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $11 - i64.trunc_f64_s - else - i64.const 0 - end - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i64.load8_u - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i64.load16_s - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i64.load8_s - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.set $1 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.set $2 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - i32.const 10 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $4 - global.get $std/typedarray/setSource1 - i32.const 0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 25 - i32.const 5968 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $4 - global.get $std/typedarray/setSource2 - i32.const 3 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 25 - i32.const 6112 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $4 - local.get $0 - i32.const 6 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 25 - i32.const 6208 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $4 - global.get $std/typedarray/setSource3 - i32.const 2 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 25 - i32.const 6304 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $2 - i32.const 4 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource7 - i32.const 7 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 25 - i32.const 6400 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i64.load32_s - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i64) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Uint64Array#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - call $~lib/typedarray/Uint64Array#__get - local.set $5 - local.get $1 - local.get $3 - call $~lib/array/Array#__unchecked_get - local.set $6 - local.get $5 - local.get $6 - i64.ne - if - i32.const 6592 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.convert_i64_u - local.get $6 - f64.convert_i64_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $11 - i64.trunc_f32_u - else - i64.const 0 - end - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f64) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $11 - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $11 - local.get $11 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $11 - i64.trunc_f64_u - else - i64.const 0 - end - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i64.load8_u - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i64.load16_s - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i64.load8_s - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.set $1 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.set $2 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - i32.const 10 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $4 - global.get $std/typedarray/setSource1 - i32.const 0 - call $~lib/typedarray/Uint64Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 26 - i32.const 6496 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $4 - global.get $std/typedarray/setSource2 - i32.const 3 - call $~lib/typedarray/Uint64Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 26 - i32.const 6640 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $4 - local.get $0 - i32.const 6 - call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 26 - i32.const 6736 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $4 - global.get $std/typedarray/setSource3 - i32.const 2 - call $~lib/typedarray/Uint64Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 26 - i32.const 6832 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $2 - i32.const 4 - call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource7 - i32.const 7 - call $~lib/typedarray/Uint64Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 26 - i32.const 6928 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - f32.convert_i32_s - f32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result f32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f32) - (local $6 f32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Float32Array#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - call $~lib/typedarray/Float32Array#__get - local.set $5 - local.get $1 - local.get $3 - call $~lib/array/Array#__unchecked_get - local.set $6 - local.get $5 - local.get $6 - f32.ne - if - i32.const 7088 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - f64.promote_f32 - local.get $6 - f64.promote_f32 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.load offset=4 - local.get $4 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - f32.convert_i64_s - f32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - f32.convert_i32_u - f32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - f32.convert_i32_s - f32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - f32.convert_i32_s - f32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.set $1 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.set $2 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - i32.const 10 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $4 - global.get $std/typedarray/setSource1 - i32.const 0 - call $~lib/typedarray/Float32Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 19 - i32.const 7024 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $4 - global.get $std/typedarray/setSource2 - i32.const 3 - call $~lib/typedarray/Float32Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 19 - i32.const 7136 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $4 - local.get $0 - i32.const 6 - call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 19 - i32.const 7200 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $2 - i32.const 4 - call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource7 - i32.const 7 - call $~lib/typedarray/Float32Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 2 - i32.const 19 - i32.const 7264 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $9 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - f64.convert_i32_s - f64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result f64) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 f64) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/typedarray/Float64Array#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/array/Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $2 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - call $~lib/typedarray/Float64Array#__get - local.set $5 - local.get $1 - local.get $3 - call $~lib/array/Array#__unchecked_get - local.set $6 - local.get $5 - local.get $6 - f64.ne - if - i32.const 7424 - i32.const 3 - local.get $3 - f64.convert_i32_s - local.get $5 - local.get $6 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - f64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - f64.convert_i64_s - f64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - f64.convert_i32_u - f64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - f64.convert_i32_s - f64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/array/Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/array/Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $6 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - f64.convert_i32_s - f64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.set $1 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.set $2 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $2 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - i32.const 10 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 - call $~lib/rt/pure/__retain - local.set $4 - local.get $4 - global.get $std/typedarray/setSource1 - i32.const 0 - call $~lib/typedarray/Float64Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 20 - i32.const 7328 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $4 - global.get $std/typedarray/setSource2 - i32.const 3 - call $~lib/typedarray/Float64Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 20 - i32.const 7472 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $4 - local.get $0 - i32.const 6 - call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 20 - i32.const 7568 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> - local.get $4 - local.get $2 - i32.const 4 - call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> - local.get $4 - global.get $std/typedarray/setSource7 - i32.const 7 - call $~lib/typedarray/Float64Array#set<~lib/array/Array> - local.get $4 - i32.const 10 - i32.const 3 - i32.const 20 - i32.const 7664 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $9 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 f32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Float32Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Float32Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - local.get $11 - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $11 - f32.min - f32.max - i32.trunc_f32_u - else - i32.const 0 - end - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Int32Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $11 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $11 - i32.sub - i32.const 31 - i32.shr_s - local.get $11 - i32.or - i32.and - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__retain - local.set $5 - local.get $1 - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/typedarray/Uint32Array#get:length - local.get $3 - i32.add - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - if - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - i32.const 368 - i32.const 432 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.load offset=4 - local.get $3 - i32.const 0 - i32.shl - i32.add - local.set $6 - local.get $4 - i32.load offset=4 - local.set $7 - local.get $4 - call $~lib/typedarray/Uint32Array#get:length - local.set $8 - i32.const 0 - local.set $9 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $7 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $6 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.const 255 - local.tee $12 - local.get $11 - local.tee $13 - local.get $12 - local.get $13 - i32.lt_u - select - i32.store8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $start:std/typedarray - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $18 i32) - (local $19 i32) - (local $20 i32) - (local $21 i32) - (local $22 i32) - (local $23 i32) - (local $24 i32) - (local $25 i32) - (local $26 i32) - i32.const 0 - call $std/typedarray/testInstantiate - i32.const 5 - call $std/typedarray/testInstantiate - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $0 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 12 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 99 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 100 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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 - local.set $0 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - i32.const 0 - i32.const 8 - call $~lib/typedarray/Float64Array#constructor - local.set $0 - local.get $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 2 - f64.const 7 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 3 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 5 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 6 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 7 - f64.const 8 - call $~lib/typedarray/Float64Array#__set - 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 - local.set $0 - local.get $0 - call $~lib/typedarray/Float64Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 16 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 32 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $~argumentsLength - local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#sort|trampoline - call $~lib/rt/pure/__release - local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq - if (result i32) - local.get $0 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - else - i32.const 0 - end - if (result i32) - local.get $0 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.eq - else - i32.const 0 - end - if (result i32) - local.get $0 - i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.eq - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.const -32 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 2 - i32.const 256 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 136 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 255 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 137 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 496 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $2 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 149 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 576 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 152 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 608 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 155 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 640 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 158 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 672 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 161 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $1 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 165 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 166 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 167 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 3 - i32.const 0 - i32.const 14 - i32.const 704 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 168 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 736 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 169 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - 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 - local.get $6 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.set $9 - local.get $9 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $9 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $9 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $9 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $9 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $9 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 768 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 181 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 816 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 184 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 864 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 187 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 2 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 912 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 190 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 960 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 193 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.set $8 - local.get $8 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $8 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 197 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 198 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.load offset=8 - i32.const 12 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 199 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - i32.const 2 - i32.const 15 - i32.const 1008 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 200 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1040 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 201 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $9 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - i32.const 0 - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.set $7 - local.get $7 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 5 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 1 - i32.const 6 - call $~lib/typedarray/Int8Array#subarray - local.set $0 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 222 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/typedarray/Int8Array#get:length - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 223 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 224 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 225 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.const 5 - call $~lib/typedarray/Int8Array#subarray - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 228 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - call $~lib/typedarray/Int8Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 229 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 230 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.load offset=8 - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 231 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.set $3 - local.get $3 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 234 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 235 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 236 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load offset=8 - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 237 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.set $3 - local.get $3 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $3 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $3 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $3 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $3 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $8 - local.get $3 - i32.const 0 - i32.const 3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $0 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1088 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 248 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $2 - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - local.set $3 - local.get $3 - i32.const 1 - i32.const 3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $2 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1136 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 250 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $9 - local.get $3 - call $~lib/rt/pure/__release - local.get $9 - local.set $3 - local.get $3 - i32.const 1 - i32.const 2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1184 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 252 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $1 - local.get $3 - call $~lib/rt/pure/__release - local.get $1 - local.set $3 - local.get $3 - i32.const 2 - i32.const 2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $1 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1232 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $10 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 254 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - local.set $3 - local.get $3 - i32.const 0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $7 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1280 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $12 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 256 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $11 - local.get $3 - call $~lib/rt/pure/__release - local.get $11 - local.set $3 - local.get $3 - i32.const 1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $11 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1328 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $14 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 258 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $13 - local.get $3 - call $~lib/rt/pure/__release - local.get $13 - local.set $3 - local.get $3 - i32.const 1 - i32.const 2 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $13 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1376 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $16 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 260 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $15 - local.get $3 - call $~lib/rt/pure/__release - local.get $15 - local.set $3 - local.get $3 - i32.const 0 - i32.const -2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $15 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1424 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $18 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 262 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $17 - local.get $3 - call $~lib/rt/pure/__release - local.get $17 - local.set $3 - local.get $3 - i32.const 0 - i32.const -2 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $17 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1472 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $20 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 264 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $19 - local.get $3 - call $~lib/rt/pure/__release - local.get $19 - local.set $3 - local.get $3 - i32.const -4 - i32.const -3 - i32.const -2 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $19 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1520 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $22 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 266 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $21 - local.get $3 - call $~lib/rt/pure/__release - local.get $21 - local.set $3 - local.get $3 - i32.const -4 - i32.const -3 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $21 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1568 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $24 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 268 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $23 - local.get $3 - call $~lib/rt/pure/__release - local.get $23 - local.set $3 - local.get $3 - i32.const -4 - i32.const -3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $23 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1616 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $26 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 270 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $16 - call $~lib/rt/pure/__release - local.get $15 - call $~lib/rt/pure/__release - local.get $18 - call $~lib/rt/pure/__release - local.get $17 - call $~lib/rt/pure/__release - local.get $20 - call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release - local.get $22 - call $~lib/rt/pure/__release - local.get $21 - call $~lib/rt/pure/__release - local.get $24 - call $~lib/rt/pure/__release - local.get $23 - call $~lib/rt/pure/__release - local.get $26 - call $~lib/rt/pure/__release - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.set $26 - local.get $26 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $26 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $26 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $26 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $26 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $26 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.set $23 - local.get $23 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 282 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $23 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 283 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $23 - i32.load offset=8 - i32.const 12 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 284 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $26 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#slice - local.set $24 - local.get $24 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 287 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $24 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 288 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $24 - call $~lib/typedarray/Int32Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 289 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $24 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 290 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $24 - i32.load offset=8 - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 291 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $23 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#slice - local.set $21 - local.get $21 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 294 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $21 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 295 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $21 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 296 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $21 - i32.load offset=8 - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 297 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $26 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#slice - local.set $22 - local.get $22 - local.get $26 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 300 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $22 - call $~lib/typedarray/Int32Array#get:length - local.get $26 - call $~lib/typedarray/Int32Array#get:length - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 301 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $22 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $26 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 302 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $22 - i32.load offset=8 - local.get $26 - i32.load offset=8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 303 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $26 - call $~lib/rt/pure/__release - local.get $23 - call $~lib/rt/pure/__release - local.get $24 - call $~lib/rt/pure/__release - local.get $21 - call $~lib/rt/pure/__release - local.get $22 - call $~lib/rt/pure/__release - call $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> - i32.const 0 - i32.const 1 - call $~lib/typedarray/Float64Array#constructor - local.set $21 - local.get $21 - i32.const 0 - f64.const nan:0x8000000000000 - call $~lib/typedarray/Float64Array#__set - local.get $21 - f64.const nan:0x8000000000000 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $21 - f64.const nan:0x8000000000000 - i32.const 0 - call $~lib/typedarray/Float64Array#includes - i32.const 0 - i32.ne - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1 - call $~lib/typedarray/Float32Array#constructor - local.set $22 - local.get $22 - i32.const 0 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set - local.get $22 - f32.const nan:0x400000 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $22 - f32.const nan:0x400000 - i32.const 0 - call $~lib/typedarray/Float32Array#includes - i32.const 0 - i32.ne - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $21 - call $~lib/rt/pure/__release - local.get $22 - call $~lib/rt/pure/__release - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $21 - i32.const 2 - global.set $~argumentsLength - local.get $21 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap|trampoline - local.set $22 - local.get $22 - call $~lib/typedarray/Uint8Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 691 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 2 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $25 - local.get $21 - call $~lib/rt/pure/__release - local.get $25 - local.set $21 - i32.const 2 - global.set $~argumentsLength - local.get $21 - i32.const 2 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap|trampoline - local.set $3 - local.get $22 - call $~lib/rt/pure/__release - local.get $3 - local.set $22 - local.get $22 - call $~lib/typedarray/Uint8Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 304 - i32.const 695 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $21 - call $~lib/rt/pure/__release - local.get $22 - call $~lib/rt/pure/__release - call $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> - i32.const 0 - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.set $22 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.set $21 - local.get $21 - i32.const 0 - f32.const 400 - call $~lib/typedarray/Float32Array#__set - local.get $21 - i32.const 1 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set - local.get $21 - i32.const 2 - f32.const inf - call $~lib/typedarray/Float32Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Int64Array#constructor - local.set $3 - local.get $3 - i32.const 0 - i64.const -10 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 1 - i64.const 100 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 2 - i64.const 10 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 3 - i64.const 300 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#constructor - local.set $25 - local.get $25 - i32.const 0 - i32.const 300 - call $~lib/typedarray/Int32Array#__set - local.get $25 - i32.const 1 - i32.const -1 - call $~lib/typedarray/Int32Array#__set - local.get $22 - local.get $21 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> - local.get $22 - local.get $3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - local.get $22 - local.get $25 - i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> - local.get $22 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 7760 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $23 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint32Array#constructor - local.set $24 - local.get $24 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $24 - i32.const 1 - i32.const 300 - call $~lib/typedarray/Uint32Array#__set - local.get $24 - i32.const 2 - i32.const 100 - call $~lib/typedarray/Uint32Array#__set - local.get $24 - i32.const 3 - i32.const -1 - call $~lib/typedarray/Uint32Array#__set - i32.const 0 - i32.const 4 - call $~lib/typedarray/Int16Array#constructor - local.set $26 - local.get $26 - i32.const 0 - i32.const -10 - call $~lib/typedarray/Int16Array#__set - local.get $26 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int16Array#__set - local.get $26 - i32.const 2 - i32.const 10 - call $~lib/typedarray/Int16Array#__set - local.get $26 - i32.const 3 - i32.const 300 - call $~lib/typedarray/Int16Array#__set - local.get $22 - local.get $24 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> - local.get $22 - local.get $26 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - local.get $22 - i32.const 10 - i32.const 0 - i32.const 21 - i32.const 7792 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $20 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $22 - call $~lib/rt/pure/__release - local.get $21 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $25 - call $~lib/rt/pure/__release - local.get $23 - call $~lib/rt/pure/__release - local.get $24 - call $~lib/rt/pure/__release - local.get $26 - call $~lib/rt/pure/__release - local.get $20 - call $~lib/rt/pure/__release - ) - (func $~start - global.get $~started - if - return - else - i32.const 1 - global.set $~started - end - call $start:std/typedarray - ) - (func $~lib/rt/pure/__collect - return - ) - (func $~lib/rt/pure/decrement (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - local.get $0 - call $~lib/rt/rtrace/ondecrement - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 256 - i32.const 122 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 256 - i32.const 126 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - else - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 256 - i32.const 136 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end - ) - (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end - local.get $1 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 256 - i32.const 69 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop - ) - (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop - ) - (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) - nop - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - (local $2 i32) - block $switch$1$default - block $switch$1$case$28 - block $switch$1$case$27 - block $switch$1$case$26 - block $switch$1$case$25 - block $switch$1$case$24 - block $switch$1$case$23 - block $switch$1$case$22 - block $switch$1$case$21 - block $switch$1$case$20 - block $switch$1$case$19 - block $switch$1$case$18 - block $switch$1$case$17 - block $switch$1$case$16 - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$16 $switch$1$case$17 $switch$1$case$18 $switch$1$case$19 $switch$1$case$20 $switch$1$case$21 $switch$1$case$22 $switch$1$case$23 $switch$1$case$24 $switch$1$case$25 $switch$1$case$26 $switch$1$case$27 $switch$1$case$28 $switch$1$default - end - return - end - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/staticarray/StaticArray#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/staticarray/StaticArray#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/staticarray/StaticArray#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - unreachable - ) -) diff --git a/tests/compiler/ternary.untouched.wat b/tests/compiler/ternary.untouched.wat index cdb295fc39..3dcfd384e1 100644 --- a/tests/compiler/ternary.untouched.wat +++ b/tests/compiler/ternary.untouched.wat @@ -6,16 +6,32 @@ (export "memory" (memory $0)) (start $~start) (func $start:ternary + i32.const 0 + drop + i32.const 1 + drop i32.const 1 drop i32.const 1 drop + i32.const 0 + drop + i32.const 1 + drop i32.const 1 drop + i32.const 0 + drop i32.const 1 global.set $ternary/a i32.const 1 + drop + i32.const 1 global.set $ternary/a + i32.const 0 + drop + i32.const 1 + drop i32.const 1 global.set $ternary/a ) diff --git a/tests/compiler/typeof.untouched.wat b/tests/compiler/typeof.untouched.wat index ceaa8022d0..3c109c8308 100644 --- a/tests/compiler/typeof.untouched.wat +++ b/tests/compiler/typeof.untouched.wat @@ -72,6 +72,10 @@ i32.shl i32.add local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 4 i32.ge_u @@ -341,6 +345,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 diff --git a/tests/compiler/wasi/snapshot_preview1.untouched.wat b/tests/compiler/wasi/snapshot_preview1.untouched.wat index fbd9e6e7ba..8f2d960b84 100644 --- a/tests/compiler/wasi/snapshot_preview1.untouched.wat +++ b/tests/compiler/wasi/snapshot_preview1.untouched.wat @@ -10,6 +10,16 @@ (export "memory" (memory $0)) (start $~start) (func $start:wasi/snapshot_preview1 + i32.const 0 + global.get $~lib/shared/target/Target.WASM32 + i32.eq + drop + nop + i32.const 0 + global.get $~lib/shared/target/Target.WASM32 + i32.eq + drop + nop i32.const 9 global.set $wasi/snapshot_preview1/sig ) diff --git a/tests/compiler/wasi/trace.untouched.wat b/tests/compiler/wasi/trace.untouched.wat index 761749cb10..77acacc57f 100644 --- a/tests/compiler/wasi/trace.untouched.wat +++ b/tests/compiler/wasi/trace.untouched.wat @@ -247,6 +247,8 @@ local.get $6 local.get $5 i32.store + i32.const 1 + drop local.get $6 i32.const 1 i32.store offset=4 @@ -2083,6 +2085,10 @@ if br $~lib/util/memory/memmove|inlined.0 end + i32.const 0 + i32.const 1 + i32.lt_s + drop local.get $4 local.get $3 i32.add @@ -2108,6 +2114,10 @@ local.get $4 i32.lt_u if + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2203,6 +2213,10 @@ end end else + i32.const 0 + i32.const 2 + i32.lt_s + drop local.get $4 i32.const 7 i32.and @@ -2643,6 +2657,10 @@ local.set $9 local.get $7 local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $10 local.get $9 local.get $8 @@ -2715,6 +2733,10 @@ local.set $6 local.get $5 local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop local.get $11 local.get $6 local.get $10 @@ -3437,6 +3459,8 @@ i32.const 16 i32.sub local.set $1 + i32.const 1 + drop local.get $1 i32.load offset=4 i32.const 1 diff --git a/tests/compiler/while.untouched.wat b/tests/compiler/while.untouched.wat index 9736ff2cbb..4006f9627b 100644 --- a/tests/compiler/while.untouched.wat +++ b/tests/compiler/while.untouched.wat @@ -311,6 +311,8 @@ (local $0 i32) i32.const 0 local.set $0 + i32.const 0 + drop local.get $0 i32.const 0 i32.eq @@ -494,6 +496,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -512,6 +516,8 @@ i32.xor i32.and local.set $3 + i32.const 1 + drop local.get $3 i32.const 16 i32.ge_u @@ -564,6 +570,8 @@ i32.sub local.set $4 end + i32.const 1 + drop local.get $4 i32.const 23 i32.lt_u @@ -703,6 +711,8 @@ (local $11 i32) (local $12 i32) (local $13 i32) + i32.const 1 + drop local.get $1 i32.eqz if @@ -716,6 +726,8 @@ local.get $1 i32.load local.set $2 + i32.const 1 + drop local.get $2 i32.const 1 i32.and @@ -809,6 +821,8 @@ local.get $6 i32.load local.set $3 + i32.const 1 + drop local.get $3 i32.const 1 i32.and @@ -865,6 +879,8 @@ i32.xor i32.and local.set $8 + i32.const 1 + drop local.get $8 i32.const 16 i32.ge_u @@ -884,6 +900,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $1 i32.const 16 i32.add @@ -938,6 +956,8 @@ i32.sub local.set $9 end + i32.const 1 + drop local.get $9 i32.const 23 i32.lt_u @@ -1048,6 +1068,8 @@ (local $7 i32) (local $8 i32) (local $9 i32) + i32.const 1 + drop local.get $1 local.get $2 i32.le_u @@ -1085,6 +1107,8 @@ local.set $5 local.get $4 if + i32.const 1 + drop local.get $1 local.get $4 i32.const 16 @@ -1116,6 +1140,8 @@ nop end else + i32.const 1 + drop local.get $1 local.get $0 i32.const 1572 @@ -1136,7 +1162,11 @@ i32.sub local.set $6 local.get $6 - i32.const 48 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add i32.lt_u if i32.const 0 @@ -1330,6 +1360,8 @@ i32.xor i32.and local.set $5 + i32.const 0 + drop local.get $0 local.get $5 memory.size @@ -1431,6 +1463,8 @@ i32.sub local.set $2 end + i32.const 1 + drop local.get $2 i32.const 23 i32.lt_u @@ -1503,6 +1537,8 @@ i32.add i32.load offset=4 local.set $6 + i32.const 1 + drop local.get $6 i32.eqz if @@ -1561,6 +1597,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) + i32.const 0 + drop local.get $1 i32.const 536870904 i32.lt_u @@ -1645,6 +1683,8 @@ local.get $1 i32.load local.set $3 + i32.const 1 + drop local.get $2 i32.const 15 i32.and @@ -1667,7 +1707,9 @@ i32.sub local.set $4 local.get $4 - i32.const 32 + i32.const 16 + i32.const 16 + i32.add i32.ge_u if local.get $1 @@ -1736,6 +1778,8 @@ (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + i32.const 1 + drop global.get $~lib/rt/tlsf/collectLock i32.eqz i32.eqz @@ -1759,9 +1803,13 @@ if global.get $~lib/gc/gc.auto if + i32.const 1 + drop i32.const 1 global.set $~lib/rt/tlsf/collectLock call $~lib/rt/pure/__collect + i32.const 1 + drop i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 @@ -1778,6 +1826,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1797,6 +1847,8 @@ local.get $3 call $~lib/rt/tlsf/searchBlock local.set $4 + i32.const 1 + drop local.get $4 i32.eqz if @@ -1809,6 +1861,8 @@ end end end + i32.const 1 + drop local.get $4 i32.load i32.const -4 @@ -1840,6 +1894,8 @@ local.get $4 local.get $3 call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop local.get $4 call $~lib/rt/rtrace/onalloc local.get $4 @@ -1880,8 +1936,12 @@ i32.const 1 i32.add i32.store offset=4 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/onincrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2256,6 +2316,8 @@ call $start:while ) (func $~lib/rt/pure/__collect + i32.const 1 + drop return ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) @@ -2271,6 +2333,8 @@ local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop local.get $1 call $~lib/rt/rtrace/onfree ) @@ -2284,8 +2348,12 @@ i32.const 268435455 i32.and local.set $2 + i32.const 1 + drop local.get $0 call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop local.get $0 i32.load i32.const 1 @@ -2309,6 +2377,10 @@ i32.add i32.const 1 call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const -2147483648 i32.and @@ -2326,6 +2398,8 @@ local.get $0 call $~lib/rt/tlsf/freeBlock else + i32.const 1 + drop local.get $2 i32.const 0 i32.gt_u @@ -2338,6 +2412,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop local.get $0 local.get $1 i32.const 268435455 @@ -2358,6 +2434,10 @@ if return end + i32.const 1 + drop + i32.const 1 + drop local.get $1 i32.const 1 i32.eq From ee20379038002a89fd74a25763bc1cd254b1e898 Mon Sep 17 00:00:00 2001 From: dcode Date: Sat, 25 Apr 2020 05:57:18 +0200 Subject: [PATCH 2/5] implement workaround --- src/builtins.ts | 15 +- src/compiler.ts | 40 +- src/module.ts | 19 + tests/compiler/instanceof.untouched.wat | 44 +- tests/compiler/std/array.untouched.wat | 14 - tests/compiler/std/arraybuffer.untouched.wat | 1126 +- tests/compiler/std/map.untouched.wat | 76 - tests/compiler/std/set.untouched.wat | 20 - tests/compiler/std/symbol.untouched.wat | 8 - tests/compiler/std/typedarray.optimized.wat | 102 +- tests/compiler/std/typedarray.untouched.wat | 56565 +++++++++++++++++ tests/compiler/ternary.untouched.wat | 16 - 12 files changed, 56727 insertions(+), 1318 deletions(-) diff --git a/src/builtins.ts b/src/builtins.ts index c47c90fdfa..d7ef556d53 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -70,7 +70,6 @@ import { RelooperBlockRef, SIMDLoadOp, getLocalGetIndex, - hasSideEffects, createType } from "./module"; @@ -1805,12 +1804,7 @@ function builtin_isNaN(ctx: BuiltinContext): ExpressionRef { case TypeKind.U32: case TypeKind.U64: case TypeKind.USIZE: { - return hasSideEffects(arg0) - ? module.block(null, [ - module.drop(arg0), - module.i32(0) - ], NativeType.I32) - : module.i32(0); + return module.maybeDropCondition(arg0, module.i32(0)); } // (t = arg0) != t case TypeKind.F32: { @@ -1886,12 +1880,7 @@ function builtin_isFinite(ctx: BuiltinContext): ExpressionRef { case TypeKind.U32: case TypeKind.U64: case TypeKind.USIZE: { - return hasSideEffects(arg0) - ? module.block(null, [ - module.drop(arg0), - module.i32(1) - ], NativeType.I32) - : module.i32(1); + return module.maybeDropCondition(arg0, module.i32(1)); } // (t = arg0) - t == 0 case TypeKind.F32: { diff --git a/src/compiler.ts b/src/compiler.ts index d8c23a5427..cfd0045f74 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -8041,18 +8041,12 @@ export class Compiler extends DiagnosticEmitter { // instanceof - must be exact if (!expectedType.is(TypeFlags.REFERENCE)) { - return module.block(null, [ - module.drop(expr), - module.i32(actualType == expectedType ? 1 : 0) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(actualType == expectedType ? 1 : 0)); } // instanceof - always false if (!actualType.is(TypeFlags.REFERENCE)) { - return module.block(null, [ - module.drop(expr), - module.i32(0) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(0)); } // both LHS and RHS are references now @@ -8113,10 +8107,7 @@ export class Compiler extends DiagnosticEmitter { // downcast - check statically if (actualType.isAssignableTo(expectedType)) { - return module.block(null, [ - this.convertExpression(expr, actualType, Type.void, false, false, expression.expression), - module.i32(1) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(1)); // upcast - check dynamically } else if (expectedType.isAssignableTo(actualType)) { @@ -8153,10 +8144,7 @@ export class Compiler extends DiagnosticEmitter { } // false - return module.block(null, [ - module.drop(expr), - module.i32(0) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(0)); } private makeInstanceofClass(expression: InstanceOfExpression, prototype: ClassPrototype): ExpressionRef { @@ -8186,10 +8174,7 @@ export class Compiler extends DiagnosticEmitter { // is just `true` } else { - return module.block(null, [ - module.drop(expr), - module.i32(1) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(1)); } // dynamic check against all possible concrete ids @@ -8200,10 +8185,7 @@ export class Compiler extends DiagnosticEmitter { } // false - return module.block(null, [ - module.drop(expr), - module.i32(0) - ], NativeType.I32); + return module.maybeDropCondition(expr, module.i32(0)); } private compileLiteralExpression( @@ -9108,16 +9090,10 @@ export class Compiler extends DiagnosticEmitter { // FIXME: skips common denominator, inconsistently picking branch type var condKind = this.evaluateCondition(condExpr); if (condKind == ConditionKind.TRUE) { - return module.block(null, [ - module.drop(condExpr), - this.compileExpression(ifThen, ctxType) - ], this.currentType.toNativeType()); + return module.maybeDropCondition(condExpr, this.compileExpression(ifThen, ctxType)); } if (condKind == ConditionKind.FALSE) { - return module.block(null, [ - module.drop(condExpr), - this.compileExpression(ifElse, ctxType) - ], this.currentType.toNativeType()); + return module.maybeDropCondition(condExpr, this.compileExpression(ifElse, ctxType)); } var inheritedConstraints = constraints & Constraints.WILL_RETAIN; diff --git a/src/module.ts b/src/module.ts index 138170a3e6..57226050dc 100644 --- a/src/module.ts +++ b/src/module.ts @@ -760,6 +760,20 @@ export class Module { return binaryen._BinaryenDrop(this.ref, expression); } + maybeDropCondition(condition: ExpressionRef, result: ExpressionRef): ExpressionRef { + // FIXME: This is necessary because Binaryen's ExpressionRunner bails early + // when encountering a local with an unknown value. This helper only drops + // the pre-evaluated condition if it has relevant side effects. + // see WebAssembly/binaryen#1237 + if ((getSideEffects(condition) & ~(SideEffects.ReadsLocal | SideEffects.ReadsGlobal)) != 0) { + return this.block(null, [ + this.drop(condition), + result + ], getExpressionType(result)); + } + return result; + } + loop( label: string | null, body: ExpressionRef @@ -2181,6 +2195,11 @@ export function hasSideEffects(expr: ExpressionRef, features: FeatureFlags = Fea return getSideEffects(expr, features) != SideEffects.None; } +export function hasSideEffectsExceptGets(expr: ExportRef, features: FeatureFlags = FeatureFlags.All): bool { + const mask = ~(SideEffects.ReadsLocal | SideEffects.ReadsGlobal); + return (getSideEffects(expr, features) & mask) != 0; +} + // helpers // can't do stack allocation here: STACKTOP is a global in WASM but a hidden variable in asm.js diff --git a/tests/compiler/instanceof.untouched.wat b/tests/compiler/instanceof.untouched.wat index 7fb95bd95d..bc5d4e0103 100644 --- a/tests/compiler/instanceof.untouched.wat +++ b/tests/compiler/instanceof.untouched.wat @@ -18,56 +18,28 @@ (export "memory" (memory $0)) (start $~start) (func $instanceof/isI32 (param $0 i32) (result i32) - local.get $0 + i32.const 1 drop i32.const 1 - if - i32.const 1 - return - else - i32.const 0 - return - end - unreachable + return ) (func $instanceof/isI32 (param $0 f64) (result i32) - local.get $0 + i32.const 0 drop i32.const 0 - if - i32.const 1 - return - else - i32.const 0 - return - end - unreachable + return ) (func $instanceof/isI32 (param $0 i32) (result i32) - local.get $0 + i32.const 0 drop i32.const 0 - if - i32.const 1 - return - else - i32.const 0 - return - end - unreachable + return ) (func $instanceof/isI32 (param $0 i32) (result i32) - local.get $0 + i32.const 0 drop i32.const 0 - if - i32.const 1 - return - else - i32.const 0 - return - end - unreachable + return ) (func $~lib/rt/stub/__retain (param $0 i32) (result i32) local.get $0 diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index cbe059d6a4..8ce493fb5a 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -2058,8 +2058,6 @@ call $~lib/rt/pure/__retain local.set $0 i32.const 1 - drop - i32.const 1 if (result i32) local.get $0 i32.const 0 @@ -2092,8 +2090,6 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 1 - drop i32.const 0 if (result i32) local.get $0 @@ -2200,8 +2196,6 @@ local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 1 - drop i32.const 0 if (result i32) local.get $0 @@ -2217,16 +2211,12 @@ ) (func $~lib/array/Array.isArray (param $0 i32) (result i32) i32.const 0 - drop - i32.const 0 ) (func $~lib/array/Array.isArray<~lib/string/String> (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 - i32.const 1 - drop i32.const 0 if (result i32) local.get $0 @@ -2246,8 +2236,6 @@ call $~lib/rt/pure/__retain local.set $0 i32.const 1 - drop - i32.const 1 if (result i32) local.get $0 i32.const 0 @@ -4794,8 +4782,6 @@ i32.shl i32.add i32.const 0 - drop - i32.const 0 i32.store local.get $0 local.get $4 diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index e705a3dd6c..c263368d01 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -3132,138 +3132,30 @@ local.get $1 return end - local.get $0 - drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end + drop i32.const 0 local.set $1 local.get $0 @@ -3273,90 +3165,30 @@ (func $~lib/arraybuffer/ArrayBuffer.isView (param $0 i32) (result i32) i32.const 0 drop - local.get $0 - drop i32.const 0 - if - i32.const 1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - return - end + drop i32.const 0 ) (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array | null> (param $0 i32) (result i32) @@ -3377,455 +3209,102 @@ local.get $1 return end + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array | null> (param $0 i32) (result i32) + (local $1 i32) local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 1 drop + local.get $0 i32.const 0 + i32.eq if - i32.const 1 + i32.const 0 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 return end - local.get $0 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 drop i32.const 1 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end + drop + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView | null> (param $0 i32) (result i32) + (local $1 i32) local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 1 drop + local.get $0 i32.const 0 + i32.eq if - i32.const 1 + i32.const 0 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 return end - local.get $0 + i32.const 0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - i32.const 0 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array | null> (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 1 - drop - local.get $0 - i32.const 0 - i32.eq - if - i32.const 0 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 1 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - i32.const 0 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView | null> (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 1 drop - local.get $0 i32.const 0 - i32.eq - if - i32.const 0 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 + i32.const 0 + drop + i32.const 0 drop - i32.const 1 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end i32.const 0 + drop + i32.const 1 + drop + i32.const 1 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 + return ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -3969,288 +3448,53 @@ local.set $0 i32.const 0 drop - local.get $0 - drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end + drop i32.const 0 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 - ) - (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 0 - drop - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 1 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end + ) + (func $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> (param $0 i32) (result i32) + (local $1 i32) local.get $0 - drop + call $~lib/rt/pure/__retain + local.set $0 i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end + drop i32.const 0 + drop + i32.const 1 + drop + i32.const 1 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 + return ) (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -4275,143 +3519,24 @@ local.set $0 i32.const 0 drop - local.get $0 - drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 1 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 - drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop - i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - i32.const 0 + i32.const 1 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 + return ) (func $~lib/dataview/DataView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -4526,143 +3651,36 @@ local.set $0 i32.const 0 drop - local.get $0 - drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 0 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - local.get $0 drop i32.const 1 - if - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - end - i32.const 0 + drop + i32.const 1 local.set $1 local.get $0 call $~lib/rt/pure/__release local.get $1 + return ) (func $start:std/arraybuffer (local $0 i32) diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index fd4e40e289..179f9ffe55 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -2199,13 +2199,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store8 local.get $5 - i32.const 0 - drop local.get $2 i32.store offset=4 local.get $0 @@ -4724,13 +4720,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store8 local.get $5 - i32.const 0 - drop local.get $2 i32.store8 offset=1 local.get $0 @@ -5118,13 +5110,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store local.get $5 - i32.const 0 - drop local.get $2 i32.store offset=4 local.get $0 @@ -6164,13 +6152,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store8 local.get $5 - i32.const 0 - drop local.get $2 i32.store offset=4 local.get $0 @@ -6925,13 +6909,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store8 local.get $5 - i32.const 0 - drop local.get $2 i32.store8 offset=1 local.get $0 @@ -7983,13 +7963,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store16 local.get $5 - i32.const 0 - drop local.get $2 i32.store offset=4 local.get $0 @@ -8762,13 +8738,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store16 local.get $5 - i32.const 0 - drop local.get $2 i32.store16 offset=2 local.get $0 @@ -9820,13 +9792,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store16 local.get $5 - i32.const 0 - drop local.get $2 i32.store offset=4 local.get $0 @@ -10593,13 +10561,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store16 local.get $5 - i32.const 0 - drop local.get $2 i32.store16 offset=2 local.get $0 @@ -12402,13 +12366,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store local.get $5 - i32.const 0 - drop local.get $2 i32.store offset=4 local.get $0 @@ -13181,13 +13141,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store local.get $5 - i32.const 0 - drop local.get $2 i32.store offset=4 local.get $0 @@ -14301,13 +14257,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i64.store local.get $5 - i32.const 0 - drop local.get $2 i32.store offset=8 local.get $0 @@ -15094,13 +15046,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i64.store local.get $5 - i32.const 0 - drop local.get $2 i64.store offset=8 local.get $0 @@ -16139,13 +16087,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i64.store local.get $5 - i32.const 0 - drop local.get $2 i32.store offset=8 local.get $0 @@ -16932,13 +16876,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i64.store local.get $5 - i32.const 0 - drop local.get $2 i64.store offset=8 local.get $0 @@ -17944,13 +17884,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 f32.store local.get $5 - i32.const 0 - drop local.get $2 i32.store offset=4 local.get $0 @@ -18704,13 +18640,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 f32.store local.get $5 - i32.const 0 - drop local.get $2 f32.store offset=4 local.get $0 @@ -19717,13 +19649,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 f64.store local.get $5 - i32.const 0 - drop local.get $2 i32.store offset=8 local.get $0 @@ -20489,13 +20417,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 f64.store local.get $5 - i32.const 0 - drop local.get $2 f64.store offset=8 local.get $0 diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index 3aa89d9711..417c2f7311 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -2181,8 +2181,6 @@ i32.add local.set $4 local.get $4 - i32.const 0 - drop local.get $1 i32.store8 local.get $0 @@ -4785,8 +4783,6 @@ i32.add local.set $4 local.get $4 - i32.const 0 - drop local.get $1 i32.store8 local.get $0 @@ -5905,8 +5901,6 @@ i32.add local.set $4 local.get $4 - i32.const 0 - drop local.get $1 i32.store16 local.get $0 @@ -7011,8 +7005,6 @@ i32.add local.set $4 local.get $4 - i32.const 0 - drop local.get $1 i32.store16 local.get $0 @@ -8155,8 +8147,6 @@ i32.add local.set $4 local.get $4 - i32.const 0 - drop local.get $1 i32.store local.get $0 @@ -9247,8 +9237,6 @@ i32.add local.set $4 local.get $4 - i32.const 0 - drop local.get $1 i32.store local.get $0 @@ -10441,8 +10429,6 @@ i32.add local.set $4 local.get $4 - i32.const 0 - drop local.get $1 i64.store local.get $0 @@ -11553,8 +11539,6 @@ i32.add local.set $4 local.get $4 - i32.const 0 - drop local.get $1 i64.store local.get $0 @@ -12632,8 +12616,6 @@ i32.add local.set $4 local.get $4 - i32.const 0 - drop local.get $1 f32.store local.get $0 @@ -13712,8 +13694,6 @@ i32.add local.set $4 local.get $4 - i32.const 0 - drop local.get $1 f64.store local.get $0 diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index e9149546fe..12b3d7081f 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -1216,14 +1216,10 @@ i32.add local.set $6 local.get $6 - i32.const 1 - drop local.get $1 call $~lib/rt/stub/__retain i32.store local.get $6 - i32.const 0 - drop local.get $2 i32.store offset=4 local.get $0 @@ -1629,13 +1625,9 @@ i32.add local.set $5 local.get $5 - i32.const 0 - drop local.get $1 i32.store local.get $5 - i32.const 1 - drop local.get $2 call $~lib/rt/stub/__retain i32.store offset=4 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 0d87d01bf5..1fcaf89fa7 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -17565,10 +17565,10 @@ ) (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $1 local.get $2 @@ -17588,10 +17588,10 @@ i64.const 10 i64.lt_u if - local.get $1 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add local.get $2 i64.const 48 @@ -17805,10 +17805,10 @@ ) (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $0 local.get $2 @@ -21858,19 +21858,19 @@ call $~lib/typedarray/Int64Array#__set i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $2 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -21891,7 +21891,7 @@ i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $1 - local.set $2 + local.set $3 block $folding-inner0 i32.const 4380 i32.load @@ -21899,7 +21899,7 @@ i32.load offset=8 i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $3 i32.load offset=4 local.set $9 i32.const 4372 @@ -21922,14 +21922,14 @@ i32.shl i32.add i32.load - local.tee $2 + local.tee $3 i32.const 31 i32.shr_s i32.const -1 i32.xor - local.get $2 + local.get $3 i32.const 255 - local.get $2 + local.get $3 i32.sub i32.const 31 i32.shr_s @@ -22101,9 +22101,19 @@ call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $0 call $~lib/rt/pure/__release + local.get $2 + i32.load offset=8 local.get $1 - local.get $3 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + i32.load offset=8 + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + call $~lib/memory/memory.copy local.get $1 local.get $8 i32.const 4 @@ -22141,14 +22151,14 @@ local.get $10 i32.add i32.load8_s - local.tee $2 + local.tee $3 i32.const 31 i32.shr_s i32.const -1 i32.xor - local.get $2 + local.get $3 i32.const 255 - local.get $2 + local.get $3 i32.sub i32.const 31 i32.shr_s @@ -22175,7 +22185,7 @@ call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $3 + local.get $2 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release @@ -23100,22 +23110,9 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) - local.get $2 - i32.const 0 - i32.lt_s - if - i32.const 1376 - i32.const 1440 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $1 - i32.load offset=12 - i32.add + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + i32.const 4380 + i32.load local.get $0 i32.load offset=8 i32.const 2 @@ -23131,14 +23128,10 @@ end local.get $0 i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.load offset=4 - local.get $1 - i32.load offset=8 + i32.const 4372 + i32.load + i32.const 4376 + i32.load call $~lib/memory/memory.copy ) (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) @@ -23491,8 +23484,6 @@ i32.const 10 call $~lib/typedarray/Int32Array#constructor local.tee $0 - i32.const 4368 - i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $0 i32.const 10 @@ -23816,8 +23807,6 @@ i32.const 10 call $~lib/typedarray/Uint32Array#constructor local.tee $0 - i32.const 4368 - i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $0 i32.const 10 @@ -25100,10 +25089,25 @@ call $~lib/rt/pure/__retain local.tee $7 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $1 - i32.const 4432 + i32.const 4444 + i32.load i32.const 3 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.add + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 12 + i32.add + i32.const 4436 + i32.load + i32.const 4440 + i32.load + call $~lib/memory/memory.copy local.get $1 i32.const 10 i32.const 2 diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index e69de29bb2..ed0bdab33c 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -0,0 +1,56565 @@ +(module + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) + (type $f32_i32_i32_=>_i32 (func (param f32 i32 i32) (result i32))) + (type $f64_i32_i32_=>_i32 (func (param f64 i32 i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i64_i64_i32_i32_=>_i64 (func (param i64 i64 i32 i32) (result i64))) + (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) + (type $i64_=>_i32 (func (param i64) (result i32))) + (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $i64_i32_i32_=>_none (func (param i64 i32 i32))) + (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) + (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) + (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) + (type $i32_i32_i64_=>_i64 (func (param i32 i32 i64) (result i64))) + (type $i64_i32_i32_=>_i64 (func (param i64 i32 i32) (result i64))) + (type $f32_f32_i32_i32_=>_f32 (func (param f32 f32 i32 i32) (result f32))) + (type $f64_f64_i32_i32_=>_f64 (func (param f64 f64 i32 i32) (result f64))) + (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) + (type $f32_i32_i32_=>_none (func (param f32 i32 i32))) + (type $f64_i32_i32_=>_none (func (param f64 i32 i32))) + (type $i32_i32_i64_=>_i32 (func (param i32 i32 i64) (result i32))) + (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $i32_i32_f32_=>_f32 (func (param i32 i32 f32) (result f32))) + (type $f32_i32_i32_=>_f32 (func (param f32 i32 i32) (result f32))) + (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) + (type $i32_i32_f64_=>_f64 (func (param i32 i32 f64) (result f64))) + (type $f64_i32_i32_=>_f64 (func (param f64 i32 i32) (result f64))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) + (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i32_f64_=>_i32 (func (param i32 i32 f64) (result i32))) + (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) + (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) + (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) + (import "rtrace" "onrealloc" (func $~lib/rt/rtrace/onrealloc (param i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (memory $0 1) + (data (i32.const 16) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 64) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 128) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 176) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 240) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 288) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 352) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") + (data (i32.const 416) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 480) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\01\04\05") + (data (i32.const 512) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 560) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\00") + (data (i32.const 592) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\00\00") + (data (i32.const 624) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 656) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 688) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\00\00\00") + (data (i32.const 720) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\00\00\00\02") + (data (i32.const 752) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 800) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 848) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 896) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") + (data (i32.const 944) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") + (data (i32.const 992) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1024) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00") + (data (i32.const 1072) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1120) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1168) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00") + (data (i32.const 1216) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1264) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1312) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1360) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1408) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1456) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1504) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1552) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1600) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00") + (data (i32.const 1648) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\n\00\00\00\0c\00\00\00\0e\00\00\00") + (data (i32.const 1680) "\10\00\00\00\01\00\00\00\0f\00\00\00\10\00\00\00\80\06\00\00\80\06\00\00\0c\00\00\00\03\00\00\00") + (data (i32.const 1712) "$\00\00\00\01\00\00\00\00\00\00\00$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") + (data (i32.const 1776) "\10\00\00\00\01\00\00\00\0f\00\00\00\10\00\00\00\c0\06\00\00\c0\06\00\00$\00\00\00\t\00\00\00") + (data (i32.const 1808) ",\00\00\00\01\00\00\00\00\00\00\00,\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00\n\00\00\00") + (data (i32.const 1872) "\10\00\00\00\01\00\00\00\0f\00\00\00\10\00\00\00 \07\00\00 \07\00\00,\00\00\00\0b\00\00\00") + (data (i32.const 1904) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 1920) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\000\00") + (data (i32.const 1952) "\90\01\00\00\01\00\00\00\10\00\00\00\90\01\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 2368) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00,\00") + (data (i32.const 2400) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\001\00,\002\00,\003\00,\004\00,\005\00") + (data (i32.const 2448) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000\00") + (data (i32.const 2480) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00") + (data (i32.const 2512) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00") + (data (i32.const 2560) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00") + (data (i32.const 2592) "\b8\02\00\00\01\00\00\00\11\00\00\00\b8\02\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0) + (global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) + (global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) + (global $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT i32 (i32.const 1)) + (global $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT i32 (i32.const 2)) + (global $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT i32 (i32.const 2)) + (global $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT i32 (i32.const 4)) + (global $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT i32 (i32.const 4)) + (global $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) + (global $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) + (global $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT i32 (i32.const 4)) + (global $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) + (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $std/typedarray/forEachCallCount (mut i32) (i32.const 0)) + (global $std/typedarray/forEachSelf (mut i32) (i32.const 0)) + (global $std/typedarray/forEachValues i32 (i32.const 1696)) + (global $std/typedarray/testArrayReverseValues i32 (i32.const 1792)) + (global $std/typedarray/testArrayIndexOfAndLastIndexOfValues i32 (i32.const 1888)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $std/typedarray/testArrayWrapValues i32 (i32.const 3712)) + (global $std/typedarray/setSource1 (mut i32) (i32.const 3776)) + (global $std/typedarray/setSource2 (mut i32) (i32.const 3840)) + (global $std/typedarray/setSource3 (mut i32) (i32.const 3920)) + (global $std/typedarray/setSource7 (mut i32) (i32.const 3984)) + (global $~started (mut i32) (i32.const 0)) + (global $~lib/heap/__heap_base i32 (i32.const 7804)) + (export "__setArgumentsLength" (func $~setArgumentsLength)) + (export "_start" (func $~start)) + (export "memory" (memory $0)) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 277 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 16 + i32.ge_u + if (result i32) + local.get $3 + i32.const 1073741808 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 279 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $4 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 292 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=16 + local.set $6 + local.get $1 + i32.load offset=20 + local.set $7 + local.get $6 + if + local.get $6 + local.get $7 + i32.store offset=20 + end + local.get $7 + if + local.get $7 + local.get $6 + i32.store offset=16 + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $9 + local.get $7 + local.set $8 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=96 + local.get $7 + i32.eqz + if + local.get $0 + local.set $9 + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $9 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 205 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 207 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $3 + local.get $3 + i32.const 1073741808 + i32.lt_u + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 3 + i32.and + local.get $3 + i32.or + local.tee $2 + i32.store + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load + local.set $6 + local.get $6 + i32.load + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 228 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $7 + local.get $7 + i32.const 1073741808 + i32.lt_u + if + local.get $0 + local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 + i32.const 3 + i32.and + local.get $7 + i32.or + local.tee $2 + i32.store + local.get $6 + local.set $1 + end + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + i32.store + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $8 + i32.const 1 + drop + local.get $8 + i32.const 16 + i32.ge_u + if (result i32) + local.get $8 + i32.const 1073741808 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 243 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 16 + i32.add + local.get $8 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 244 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $8 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $9 + local.get $8 + i32.const 4 + i32.shr_u + local.set $10 + else + i32.const 31 + local.get $8 + i32.clz + i32.sub + local.set $9 + local.get $8 + local.get $9 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $10 + local.get $9 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $9 + end + i32.const 1 + drop + local.get $9 + i32.const 23 + i32.lt_u + if (result i32) + local.get $10 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 260 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + local.get $11 + i32.store offset=20 + local.get $11 + if + local.get $11 + local.get $1 + i32.store offset=16 + end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $9 + i32.shl + i32.or + i32.store + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (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) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + if (result i32) + local.get $1 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $2 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 386 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 16 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 396 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 408 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 16 + i32.const 1 + i32.shl + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + i32.store + local.get $8 + i32.const 0 + i32.store offset=16 + local.get $8 + i32.const 0 + i32.store offset=20 + local.get $1 + local.get $6 + i32.add + i32.const 16 + i32.sub + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + i32.store + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/maybeInitialize (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/rt/tlsf/ROOT + local.set $0 + local.get $0 + i32.eqz + if + global.get $~lib/heap/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $1 + memory.size + local.set $2 + local.get $1 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $3 + local.get $2 + i32.gt_s + if (result i32) + local.get $3 + local.get $2 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $1 + local.set $0 + local.get $0 + i32.const 0 + i32.store + local.get $0 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $0 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $1 + i32.const 1572 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $5 + i32.const 0 + drop + local.get $0 + local.get $5 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $0 + global.set $~lib/rt/tlsf/ROOT + end + local.get $0 + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.const 1073741808 + i32.ge_u + if + i32.const 192 + i32.const 144 + i32.const 461 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.tee $1 + i32.const 16 + local.tee $2 + local.get $1 + local.get $2 + i32.gt_u + select + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870904 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 338 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 351 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870904 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 16 + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 365 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 16 + i32.const 16 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 16 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + i32.store + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + i32.store + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + i32.const 1 + drop + global.get $~lib/rt/tlsf/collectLock + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $3 + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 + i32.eqz + if + global.get $~lib/gc/gc.auto + if + i32.const 1 + drop + i32.const 1 + global.set $~lib/rt/tlsf/collectLock + call $~lib/rt/pure/__collect + i32.const 1 + drop + i32.const 0 + global.set $~lib/rt/tlsf/collectLock + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 + i32.eqz + if + local.get $0 + local.get $3 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + i32.const 1 + drop + local.get $4 + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 513 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + end + else + local.get $0 + local.get $3 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + i32.const 1 + drop + local.get $4 + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 518 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + end + end + i32.const 1 + drop + local.get $4 + i32.load + i32.const -4 + i32.and + local.get $3 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 521 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 0 + i32.store offset=4 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 + local.get $1 + i32.store offset=12 + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $4 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop + local.get $4 + call $~lib/rt/rtrace/onalloc + local.get $4 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + i32.const 4 + i32.sub + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + local.get $4 + i32.store8 offset=3 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + local.get $4 + i32.store8 offset=2 + local.get $6 + local.get $4 + i32.store8 offset=1 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + i32.const 28 + i32.sub + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + local.get $8 + i32.store offset=24 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + local.get $8 + i32.store offset=16 + local.get $6 + local.get $8 + i32.store offset=20 + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + local.get $8 + i32.store + local.get $6 + local.get $8 + i32.store offset=4 + local.get $6 + local.get $8 + i32.store offset=8 + local.get $6 + local.get $8 + i32.store offset=12 + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/pure/increment (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $1 + i32.const -268435456 + i32.and + local.get $1 + i32.const 1 + i32.add + i32.const -268435456 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 109 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + i32.const 1 + drop + local.get $0 + call $~lib/rt/rtrace/onincrement + i32.const 1 + drop + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 112 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/pure/__retain (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u + if + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/increment + end + local.get $0 + ) + (func $~lib/rt/pure/__release (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/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.const 1073741808 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 23 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + ) + (func $~lib/typedarray/Int8Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 3 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub + ) + (func $~lib/typedarray/Int8Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 4 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/typedarray/Uint8Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/typedarray/Uint8ClampedArray#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 5 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/typedarray/Uint8ClampedArray#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (func $~lib/typedarray/Int16Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 6 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + ) + (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 7 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/typedarray/Uint16Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + ) + (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 8 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/typedarray/Int32Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + ) + (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 9 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/typedarray/Uint32Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + ) + (func $~lib/typedarray/Int64Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 10 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/typedarray/Int64Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + ) + (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 11 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/typedarray/Uint64Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + ) + (func $~lib/typedarray/Float32Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 12 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + ) + (func $~lib/typedarray/Float64Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + if (result i32) + local.get $0 + else + i32.const 12 + i32.const 13 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + end + local.get $1 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/typedarray/Float64Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + ) + (func $std/typedarray/testInstantiate (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + i32.const 0 + local.get $0 + call $~lib/typedarray/Int8Array#constructor + local.set $1 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.get $0 + i32.const 1 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint8Array#constructor + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.load offset=8 + local.get $0 + i32.const 1 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Uint8Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.set $3 + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=8 + local.get $0 + i32.const 1 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.get $0 + call $~lib/typedarray/Int16Array#constructor + local.set $4 + local.get $4 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.load offset=8 + local.get $0 + i32.const 2 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint16Array#constructor + local.set $5 + local.get $5 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.load offset=8 + local.get $0 + i32.const 2 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 54 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.get $0 + call $~lib/typedarray/Int32Array#constructor + local.set $6 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.load offset=8 + local.get $0 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/typedarray/Int32Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint32Array#constructor + local.set $7 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 62 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.load offset=8 + local.get $0 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 + call $~lib/typedarray/Uint32Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.get $0 + call $~lib/typedarray/Int64Array#constructor + local.set $8 + local.get $8 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + local.get $0 + i32.const 8 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $~lib/typedarray/Int64Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint64Array#constructor + local.set $9 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.load offset=8 + local.get $0 + i32.const 8 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $~lib/typedarray/Uint64Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.get $0 + call $~lib/typedarray/Float32Array#constructor + local.set $10 + local.get $10 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $10 + i32.load offset=8 + local.get $0 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 78 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $10 + call $~lib/typedarray/Float32Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 79 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.get $0 + call $~lib/typedarray/Float64Array#constructor + local.set $11 + local.get $11 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $11 + i32.load offset=8 + local.get $0 + i32.const 8 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $11 + call $~lib/typedarray/Float64Array#get:length + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + 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 + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 675 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) + (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 664 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/typedarray/Int32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + i32.const 12 + i32.const 8 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $5 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 1315 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + f64.store + ) + (func $~lib/typedarray/Float64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + i32.const 12 + i32.const 13 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $5 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 f64) + (local $9 i32) + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + block $while-break|1 + loop $while-continue|1 + local.get $6 + i32.const 0 + i32.ge_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $2 + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $6 + local.tee $9 + i32.const 1 + i32.sub + local.set $6 + local.get $9 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + local.get $8 + f64.store + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 16 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load offset=4 + i32.const -268435456 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f64) + (local $10 f64) + (local $11 i32) + (local $12 f64) + local.get $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $4 + local.get $4 + i32.const 0 + local.get $3 + call $~lib/memory/memory.fill + local.get $1 + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 0 + i32.gt_s + local.set $6 + local.get $6 + if + local.get $5 + local.set $7 + loop $while-continue|1 + local.get $7 + i32.const 1 + i32.and + local.get $4 + local.get $7 + i32.const 6 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + local.set $8 + local.get $8 + if + local.get $7 + i32.const 1 + i32.shr_s + local.set $7 + br $while-continue|1 + end + end + local.get $7 + i32.const 1 + i32.shr_s + local.set $8 + local.get $0 + local.get $8 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $9 + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $10 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $10 + local.get $2 + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $4 + local.get $5 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $5 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + local.get $5 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + local.get $9 + f64.store + local.get $0 + local.get $8 + i32.const 3 + i32.shl + i32.add + local.get $10 + f64.store + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|0 + end + end + local.get $1 + i32.const 1 + i32.sub + local.set $5 + loop $for-loop|2 + local.get $5 + i32.const 2 + i32.ge_s + local.set $6 + local.get $6 + if + local.get $0 + f64.load + local.set $10 + local.get $0 + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + local.get $10 + f64.store + i32.const 1 + local.set $8 + loop $while-continue|3 + local.get $8 + i32.const 1 + i32.shl + local.get $4 + local.get $8 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + local.get $8 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + local.tee $7 + local.get $5 + i32.lt_s + local.set $11 + local.get $11 + if + local.get $7 + local.set $8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $8 + i32.const 0 + i32.gt_s + local.set $11 + local.get $11 + if + local.get $0 + f64.load + local.set $10 + local.get $0 + local.get $8 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $10 + local.get $9 + local.get $2 + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $4 + local.get $8 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $8 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + local.get $8 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + local.get $0 + local.get $8 + i32.const 3 + i32.shl + i32.add + local.get $10 + f64.store + local.get $0 + local.get $9 + f64.store + end + local.get $8 + i32.const 1 + i32.shr_s + local.set $8 + br $while-continue|4 + end + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|2 + end + end + local.get $4 + call $~lib/rt/tlsf/__free + local.get $0 + f64.load offset=8 + local.set $12 + local.get $0 + local.get $0 + f64.load + f64.store offset=8 + local.get $0 + local.get $12 + f64.store + ) + (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f64) + (local $7 f64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $4 + local.get $4 + i32.const 1 + i32.le_s + if + local.get $3 + br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 2 + i32.eq + if + local.get $5 + f64.load offset=8 + local.set $6 + local.get $5 + f64.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $7 + local.get $2 + call_indirect (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $5 + local.get $7 + f64.store offset=8 + local.get $5 + local.get $6 + f64.store + end + local.get $3 + br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 + local.set $10 + local.get $4 + local.set $9 + local.get $2 + local.set $8 + i32.const 0 + drop + local.get $9 + i32.const 256 + i32.lt_s + if + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/sort/insertionSort + else + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/sort/weakHeapSort + end + local.get $3 + end + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + local.get $0 + i64.reinterpret_f64 + local.set $2 + local.get $1 + i64.reinterpret_f64 + local.set $3 + local.get $2 + local.get $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.set $2 + local.get $3 + local.get $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.set $3 + local.get $2 + local.get $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub + ) + (func $~lib/typedarray/Float64Array#sort|trampoline (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 0 + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.eq + drop + i32.const 1 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/typedarray/Float64Array#sort + ) + (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 291 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $2 + i32.sub + i32.const 31 + i32.shr_s + local.get $2 + i32.or + i32.and + i32.store8 + ) + (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 280 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 35 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $7 + local.get $1 + local.set $6 + local.get $2 + local.set $5 + local.get $3 + local.set $4 + local.get $7 + i32.load offset=4 + local.set $8 + local.get $7 + call $~lib/typedarray/Int8Array#get:length + local.set $9 + local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 + local.get $5 + i32.add + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $5 + local.tee $10 + local.get $9 + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + end + local.set $5 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 + local.get $4 + i32.add + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $4 + local.tee $10 + local.get $9 + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + end + local.set $4 + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $5 + local.get $4 + i32.lt_s + if + local.get $8 + local.get $5 + i32.add + local.get $6 + local.get $4 + local.get $5 + i32.sub + call $~lib/memory/memory.fill + end + local.get $7 + ) + (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + loop $while-continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + loop $while-continue|1 + local.get $2 + i32.const 16 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|1 + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + br_if $case2|2 + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 + local.get $2 + i32.const 17 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|3 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + loop $while-continue|4 + local.get $2 + i32.const 18 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|4 + end + end + br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + loop $while-continue|5 + local.get $2 + i32.const 19 + i32.ge_u + local.set $5 + local.get $5 + if + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $while-continue|5 + end + end + br $break|2 + end + end + local.get $2 + i32.const 16 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + local.get $2 + i32.const 1 + i32.and + if + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + end + ) + (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + local.get $4 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + local.get $4 + local.get $3 + i32.add + local.get $5 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $5 + local.get $3 + i32.add + local.get $4 + i32.le_u + end + if + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $4 + i32.lt_u + if + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $5 + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $5 + local.get $4 + i64.load + i64.store + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.tee $7 + i32.const 1 + i32.add + local.set $5 + local.get $7 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.load8_u + i32.store8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + else + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 7 + i32.and + local.get $5 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $5 + local.get $3 + i32.add + i32.const 7 + i32.and + local.set $6 + local.get $6 + if + local.get $3 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $3 + i32.const 8 + i32.ge_u + local.set $6 + local.get $6 + if + local.get $3 + i32.const 8 + i32.sub + local.set $3 + local.get $5 + local.get $3 + i32.add + local.get $4 + local.get $3 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $3 + local.set $6 + local.get $6 + if + local.get $5 + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + i32.add + local.get $4 + local.get $3 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + ) + (func $~lib/rt/__allocBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $0 + call $~lib/memory/memory.copy + end + local.get $3 + ) + (func $~lib/rt/__allocArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 16 + local.get $2 + call $~lib/rt/tlsf/__alloc + local.set $4 + local.get $0 + local.get $1 + i32.shl + local.set $5 + local.get $5 + i32.const 0 + local.get $3 + call $~lib/rt/__allocBuffer + local.set $6 + local.get $4 + local.get $6 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + local.get $6 + i32.store offset=4 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $0 + i32.store offset=12 + local.get $4 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 24 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_s + ) + (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 368 + i32.const 528 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array#__unchecked_get + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + i32.const 0 + local.set $2 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + local.set $5 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + i32.const 12 + i32.const 3 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $5 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 0 + i32.shl + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $7 + local.get $1 + local.set $6 + local.get $2 + local.set $5 + local.get $3 + local.set $4 + local.get $7 + i32.load offset=4 + local.set $8 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $9 + local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 + local.get $5 + i32.add + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $5 + local.tee $10 + local.get $9 + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + end + local.set $5 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $9 + local.get $4 + i32.add + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $4 + local.tee $10 + local.get $9 + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + end + local.set $4 + i32.const 4 + i32.const 1 + i32.eq + drop + loop $for-loop|0 + local.get $5 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $7 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 368 + i32.const 528 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array#__unchecked_get + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (func $std/typedarray/isInt32ArrayEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $1 + call $~lib/array/Array#get:length + i32.ne + if + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + i32.const 0 + local.set $2 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + local.set $5 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $4 + local.get $6 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $6 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.get $4 + i32.sub + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $6 + i32.const 0 + local.get $6 + call $~lib/typedarray/Int32Array#constructor + local.tee $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $8 + i32.load offset=4 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $7 + local.get $1 + local.set $6 + local.get $2 + local.set $5 + local.get $3 + local.set $4 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + local.get $7 + i32.load offset=4 + local.set $9 + local.get $4 + local.tee $10 + local.get $8 + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + local.set $4 + local.get $6 + i32.const 0 + i32.lt_s + if (result i32) + local.get $8 + local.get $6 + i32.add + local.tee $10 + i32.const 0 + local.tee $11 + local.get $10 + local.get $11 + i32.gt_s + select + else + local.get $6 + local.tee $10 + local.get $8 + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + end + local.set $10 + local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $8 + local.get $5 + i32.add + local.tee $11 + i32.const 0 + local.tee $12 + local.get $11 + local.get $12 + i32.gt_s + select + else + local.get $5 + local.tee $11 + local.get $8 + local.tee $12 + local.get $11 + local.get $12 + i32.lt_s + select + end + local.set $11 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $8 + local.get $4 + i32.add + local.tee $12 + i32.const 0 + local.tee $13 + local.get $12 + local.get $13 + i32.gt_s + select + else + local.get $4 + local.tee $12 + local.get $8 + local.tee $13 + local.get $12 + local.get $13 + i32.lt_s + select + end + local.set $12 + local.get $12 + local.get $11 + i32.sub + local.tee $13 + local.get $8 + local.get $10 + i32.sub + local.tee $14 + local.get $13 + local.get $14 + i32.lt_s + select + local.set $13 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + local.get $9 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $7 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int8Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/typedarray/Int8Array#reduce + local.set $2 + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 163 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint8Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#reduce + local.set $2 + local.get $2 + i32.const 255 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint8ClampedArray#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#reduce + local.set $2 + local.get $2 + i32.const 255 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 419 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int16Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int16Array#reduce + local.set $2 + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 547 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint16Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 6 + i32.const 0 + call $~lib/typedarray/Uint16Array#reduce + local.set $2 + local.get $2 + i32.const 65535 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int32Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 7 + i32.const 0 + call $~lib/typedarray/Int32Array#reduce + local.set $2 + local.get $2 + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 803 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint32Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 8 + i32.const 0 + call $~lib/typedarray/Uint32Array#reduce + local.set $2 + local.get $2 + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 931 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (local $4 i64) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + i64.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int64Array#reduce (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i64) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 9 + i64.const 0 + call $~lib/typedarray/Int64Array#reduce + local.set $2 + local.get $2 + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 1059 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i64.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint64Array#reduce (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i64) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 10 + i64.const 0 + call $~lib/typedarray/Uint64Array#reduce + local.set $2 + local.get $2 + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 1187 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + ) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (local $4 f32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + f32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Float32Array#reduce (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 f32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $f32_f32_i32_i32_=>_f32) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 f32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 11 + f32.const 0 + call $~lib/typedarray/Float32Array#reduce + local.set $2 + local.get $2 + f32.const 6 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + (local $4 f64) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + f64.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Float64Array#reduce (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 f64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $8 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_s + local.set $9 + local.get $9 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $f64_f64_i32_i32_=>_f64) + local.set $3 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + ) + (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 f64) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 12 + f64.const 0 + call $~lib/typedarray/Float64Array#reduce + local.set $2 + local.get $2 + f64.const 6 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int8Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $7 + local.get $5 + call $~lib/rt/pure/__release + local.get $7 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 13 + i32.const 0 + call $~lib/typedarray/Int8Array#reduceRight + local.set $2 + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint8Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $7 + local.get $5 + call $~lib/rt/pure/__release + local.get $7 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 14 + i32.const 0 + call $~lib/typedarray/Uint8Array#reduceRight + local.set $2 + local.get $2 + i32.const 255 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint8ClampedArray#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $7 + local.get $5 + call $~lib/rt/pure/__release + local.get $7 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 15 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#reduceRight + local.set $2 + local.get $2 + i32.const 255 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int16Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $7 + local.get $5 + call $~lib/rt/pure/__release + local.get $7 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 16 + i32.const 0 + call $~lib/typedarray/Int16Array#reduceRight + local.set $2 + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint16Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $7 + local.get $5 + call $~lib/rt/pure/__release + local.get $7 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 17 + i32.const 0 + call $~lib/typedarray/Uint16Array#reduceRight + local.set $2 + local.get $2 + i32.const 65535 + i32.and + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int32Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $7 + local.get $5 + call $~lib/rt/pure/__release + local.get $7 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 18 + i32.const 0 + call $~lib/typedarray/Int32Array#reduceRight + local.set $2 + local.get $2 + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint32Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i32_i32_i32_i32_=>_i32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $7 + local.get $5 + call $~lib/rt/pure/__release + local.get $7 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 19 + i32.const 0 + call $~lib/typedarray/Uint32Array#reduceRight + local.set $2 + local.get $2 + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i64.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i64) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 20 + i64.const 0 + call $~lib/typedarray/Int64Array#reduceRight + local.set $2 + local.get $2 + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + i64.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $i64_i64_i32_i32_=>_i64) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i64) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 21 + i64.const 0 + call $~lib/typedarray/Uint64Array#reduceRight + local.set $2 + local.get $2 + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + f32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Float32Array#reduceRight (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $f32_f32_i32_i32_=>_f32) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 f32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 22 + f32.const 0 + call $~lib/typedarray/Float32Array#reduceRight + local.set $2 + local.get $2 + f32.const 6 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 (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 + local.set $3 + local.get $0 + local.get $1 + f64.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Float64Array#reduceRight (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.const 1 + i32.sub + local.set $7 + loop $for-loop|0 + local.get $7 + i32.const 0 + i32.ge_s + local.set $8 + local.get $8 + if + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $f64_f64_i32_i32_=>_f64) + local.set $3 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|0 + end + end + local.get $3 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 f64) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 23 + f64.const 0 + call $~lib/typedarray/Float64Array#reduceRight + local.set $2 + local.get $2 + f64.const 6 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + i32.mul + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int8Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 0 + i32.shl + local.set $6 + i32.const 12 + i32.const 3 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 24 + call $~lib/typedarray/Int8Array#map + local.set $2 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + i32.mul + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 0 + i32.shl + local.set $6 + i32.const 12 + i32.const 4 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 152 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 25 + call $~lib/typedarray/Uint8Array#map + local.set $2 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + i32.mul + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint8ClampedArray#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 0 + i32.shl + local.set $6 + i32.const 12 + i32.const 5 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 26 + call $~lib/typedarray/Uint8ClampedArray#map + local.set $2 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + i32.mul + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int16Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 1 + i32.shl + local.set $6 + i32.const 12 + i32.const 6 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 408 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 27 + call $~lib/typedarray/Int16Array#map + local.set $2 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + i32.mul + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint16Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 1 + i32.shl + local.set $6 + i32.const 12 + i32.const 7 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 536 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 28 + call $~lib/typedarray/Uint16Array#map + local.set $2 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + i32.mul + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int32Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 2 + i32.shl + local.set $6 + i32.const 12 + i32.const 8 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 29 + call $~lib/typedarray/Int32Array#map + local.set $2 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + i32.mul + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 2 + i32.shl + local.set $6 + i32.const 12 + i32.const 9 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 792 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 30 + call $~lib/typedarray/Uint32Array#map + local.set $2 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (local $3 i64) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + i64.mul + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int64Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 3 + i32.shl + local.set $6 + i32.const 12 + i32.const 10 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 3 + i32.shl + i32.add + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_i64) + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 920 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 31 + call $~lib/typedarray/Int64Array#map + local.set $2 + local.get $2 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 9 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (local $3 i64) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + i64.mul + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 3 + i32.shl + local.set $6 + i32.const 12 + i32.const 11 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 3 + i32.shl + i32.add + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_i64) + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 1048 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 32 + call $~lib/typedarray/Uint64Array#map + local.set $2 + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 9 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + (local $3 f32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + f32.mul + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Float32Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 2 + i32.shl + local.set $6 + i32.const 12 + i32.const 12 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $f32_i32_i32_=>_f32) + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 368 + i32.const 432 + i32.const 1176 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 33 + call $~lib/typedarray/Float32Array#map + local.set $2 + local.get $2 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 9 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + (local $3 f64) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + f64.mul + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Float64Array#map (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 3 + i32.shl + local.set $6 + i32.const 12 + i32.const 13 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.const 3 + i32.shl + i32.add + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $f64_i32_i32_=>_f64) + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $7 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $8 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + ) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 34 + call $~lib/typedarray/Float64Array#map + local.set $2 + local.get $2 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 366 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 9 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 367 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.gt_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/rt/tlsf/reallocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $2 + call $~lib/rt/tlsf/prepareSize + local.set $3 + local.get $1 + i32.load + local.set $4 + local.get $3 + local.get $4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.le_u + if + local.get $0 + local.get $1 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $1 + local.get $2 + i32.store offset=12 + local.get $1 + return + end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $6 + local.get $6 + i32.load + local.set $7 + local.get $7 + i32.const 1 + i32.and + if + local.get $4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.add + local.get $7 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $5 + local.get $5 + local.get $3 + i32.ge_u + if + local.get $0 + local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $4 + i32.const 3 + i32.and + local.get $5 + i32.or + i32.store + local.get $1 + local.get $2 + i32.store offset=12 + local.get $0 + local.get $1 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $1 + return + end + end + local.get $0 + local.get $2 + local.get $1 + i32.load offset=8 + call $~lib/rt/tlsf/allocateBlock + local.set $8 + local.get $8 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $8 + i32.const 16 + i32.add + local.get $1 + i32.const 16 + i32.add + local.get $2 + call $~lib/memory/memory.copy + local.get $1 + global.get $~lib/heap/__heap_base + i32.ge_u + if + i32.const 1 + drop + local.get $1 + local.get $8 + call $~lib/rt/rtrace/onrealloc + local.get $0 + local.get $1 + call $~lib/rt/tlsf/freeBlock + end + local.get $8 + ) + (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + local.get $1 + call $~lib/rt/tlsf/reallocateBlock + i32.const 16 + i32.add + ) + (func $~lib/typedarray/Int8Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + i32.const 12 + i32.const 3 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.const 0 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 0 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/tlsf/__realloc + local.set $10 + local.get $5 + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + call $~lib/rt/pure/__retain + local.set $11 + local.get $3 + call $~lib/rt/pure/__release + local.get $11 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 35 + call $~lib/typedarray/Int8Array#filter + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.gt_u + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $4 + i32.const 12 + i32.const 4 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.const 0 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 0 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/tlsf/__realloc + local.set $10 + local.get $5 + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + call $~lib/rt/pure/__retain + local.set $11 + local.get $3 + call $~lib/rt/pure/__release + local.get $11 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 36 + call $~lib/typedarray/Uint8Array#filter + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Uint8Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.gt_u + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint8ClampedArray#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $4 + i32.const 12 + i32.const 5 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.const 0 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 0 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/tlsf/__realloc + local.set $10 + local.get $5 + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + call $~lib/rt/pure/__retain + local.set $11 + local.get $3 + call $~lib/rt/pure/__release + local.get $11 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 37 + call $~lib/typedarray/Uint8ClampedArray#filter + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 2 + i32.gt_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int16Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + i32.const 12 + i32.const 6 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.const 1 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 1 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/tlsf/__realloc + local.set $10 + local.get $5 + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + call $~lib/rt/pure/__retain + local.set $11 + local.get $3 + call $~lib/rt/pure/__release + local.get $11 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 38 + call $~lib/typedarray/Int16Array#filter + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Int16Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.gt_u + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint16Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $4 + i32.const 12 + i32.const 7 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.const 1 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 1 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/tlsf/__realloc + local.set $10 + local.get $5 + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + call $~lib/rt/pure/__retain + local.set $11 + local.get $3 + call $~lib/rt/pure/__release + local.get $11 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 39 + call $~lib/typedarray/Uint16Array#filter + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Uint16Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2 + i32.gt_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int32Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + i32.const 12 + i32.const 8 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 2 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/tlsf/__realloc + local.set $10 + local.get $5 + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + call $~lib/rt/pure/__retain + local.set $11 + local.get $3 + call $~lib/rt/pure/__release + local.get $11 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 40 + call $~lib/typedarray/Int32Array#filter + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2 + i32.gt_u + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $4 + i32.const 12 + i32.const 9 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 2 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/tlsf/__realloc + local.set $10 + local.get $5 + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + call $~lib/rt/pure/__retain + local.set $11 + local.get $3 + call $~lib/rt/pure/__release + local.get $11 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 41 + call $~lib/typedarray/Uint32Array#filter + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Uint32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 2 + i64.gt_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int64Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + i32.const 12 + i32.const 10 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 3 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/tlsf/__realloc + local.set $10 + local.get $5 + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + call $~lib/rt/pure/__retain + local.set $12 + local.get $3 + call $~lib/rt/pure/__release + local.get $12 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 42 + call $~lib/typedarray/Int64Array#filter + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Int64Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 2 + i64.gt_u + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $4 + i32.const 12 + i32.const 11 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 3 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/tlsf/__realloc + local.set $10 + local.get $5 + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + call $~lib/rt/pure/__retain + local.set $12 + local.get $3 + call $~lib/rt/pure/__release + local.get $12 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 6 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 43 + call $~lib/typedarray/Uint64Array#filter + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Uint64Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f32.const 2 + f32.gt + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Float32Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $4 + i32.const 12 + i32.const 12 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $f32_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + f32.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 2 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/tlsf/__realloc + local.set $10 + local.get $5 + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + call $~lib/rt/pure/__retain + local.set $12 + local.get $3 + call $~lib/rt/pure/__release + local.get $12 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 6 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 5 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 44 + call $~lib/typedarray/Float32Array#filter + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Float32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f64.const 2 + f64.gt + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Float64Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $4 + i32.const 12 + i32.const 13 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $6 + local.get $3 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $4 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + i32.const 3 + global.set $~argumentsLength + local.get $11 + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $f64_i32_i32_=>_i32) + if + local.get $6 + local.get $8 + local.tee $12 + i32.const 1 + i32.add + local.set $8 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + f64.store + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $8 + i32.const 3 + i32.shl + local.set $9 + local.get $6 + local.get $9 + call $~lib/rt/tlsf/__realloc + local.set $10 + local.get $5 + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $5 + local.get $9 + i32.store offset=8 + local.get $5 + local.get $10 + i32.store offset=4 + local.get $5 + call $~lib/rt/pure/__retain + local.set $12 + local.get $3 + call $~lib/rt/pure/__release + local.get $12 + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 0 + i32.const 6 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 5 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 45 + call $~lib/typedarray/Float64Array#filter + local.set $2 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/typedarray/Float64Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int8Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 46 + call $~lib/typedarray/Int8Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 47 + call $~lib/typedarray/Int8Array#some + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 48 + call $~lib/typedarray/Uint8Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 49 + call $~lib/typedarray/Uint8Array#some + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint8ClampedArray#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 50 + call $~lib/typedarray/Uint8ClampedArray#some + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 51 + call $~lib/typedarray/Uint8ClampedArray#some + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int16Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 52 + call $~lib/typedarray/Int16Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 53 + call $~lib/typedarray/Int16Array#some + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint16Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 65535 + i32.and + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 54 + call $~lib/typedarray/Uint16Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 55 + call $~lib/typedarray/Uint16Array#some + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int32Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 56 + call $~lib/typedarray/Int32Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 57 + call $~lib/typedarray/Int32Array#some + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + i32.const 1 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 58 + call $~lib/typedarray/Uint32Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 59 + call $~lib/typedarray/Uint32Array#some + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 2 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_i32) + if + i32.const 1 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 0 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 60 + call $~lib/typedarray/Int64Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 61 + call $~lib/typedarray/Int64Array#some + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 2 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_i32) + if + i32.const 1 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 0 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 62 + call $~lib/typedarray/Uint64Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 63 + call $~lib/typedarray/Uint64Array#some + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f32.const 2 + f32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $f32_i32_i32_=>_i32) + if + i32.const 1 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f32.const 0 + f32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 64 + call $~lib/typedarray/Float32Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 65 + call $~lib/typedarray/Float32Array#some + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f64.const 2 + f64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $f64_i32_i32_=>_i32) + if + i32.const 1 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 0 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f64.const 0 + f64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 66 + call $~lib/typedarray/Float64Array#some + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 67 + call $~lib/typedarray/Float64Array#some + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 4 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 68 + call $~lib/typedarray/Int8Array#findIndex + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 69 + call $~lib/typedarray/Int8Array#findIndex + local.set $3 + local.get $3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 4 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 70 + call $~lib/typedarray/Uint8Array#findIndex + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 71 + call $~lib/typedarray/Uint8Array#findIndex + local.set $3 + local.get $3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint8ClampedArray#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 4 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 72 + call $~lib/typedarray/Uint8ClampedArray#findIndex + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 73 + call $~lib/typedarray/Uint8ClampedArray#findIndex + local.set $3 + local.get $3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 4 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 74 + call $~lib/typedarray/Int16Array#findIndex + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 75 + call $~lib/typedarray/Int16Array#findIndex + local.set $3 + local.get $3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 65535 + i32.and + i32.const 4 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 76 + call $~lib/typedarray/Uint16Array#findIndex + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 77 + call $~lib/typedarray/Uint16Array#findIndex + local.set $3 + local.get $3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 4 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 78 + call $~lib/typedarray/Int32Array#findIndex + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 79 + call $~lib/typedarray/Int32Array#findIndex + local.set $3 + local.get $3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $5 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 4 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 80 + call $~lib/typedarray/Uint32Array#findIndex + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 81 + call $~lib/typedarray/Uint32Array#findIndex + local.set $3 + local.get $3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 2 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_i32) + if + local.get $5 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 4 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 82 + call $~lib/typedarray/Int64Array#findIndex + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 83 + call $~lib/typedarray/Int64Array#findIndex + local.set $3 + local.get $3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 2 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_i32) + if + local.get $5 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 4 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 84 + call $~lib/typedarray/Uint64Array#findIndex + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 85 + call $~lib/typedarray/Uint64Array#findIndex + local.set $3 + local.get $3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f32.const 2 + f32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Float32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $f32_i32_i32_=>_i32) + if + local.get $5 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f32.const 4 + f32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 86 + call $~lib/typedarray/Float32Array#findIndex + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 87 + call $~lib/typedarray/Float32Array#findIndex + local.set $3 + local.get $3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f64.const 2 + f64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Float64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $f64_i32_i32_=>_i32) + if + local.get $5 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const -1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f64.const 4 + f64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 88 + call $~lib/typedarray/Float64Array#findIndex + local.set $2 + local.get $2 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 438 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 89 + call $~lib/typedarray/Float64Array#findIndex + local.set $3 + local.get $3 + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.rem_s + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int8Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 90 + call $~lib/typedarray/Int8Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 91 + call $~lib/typedarray/Int8Array#every + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 92 + call $~lib/typedarray/Uint8Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 93 + call $~lib/typedarray/Uint8Array#every + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint8ClampedArray#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 94 + call $~lib/typedarray/Uint8ClampedArray#every + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 95 + call $~lib/typedarray/Uint8ClampedArray#every + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 2 + i32.rem_s + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 96 + call $~lib/typedarray/Int16Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 97 + call $~lib/typedarray/Int16Array#every + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 98 + call $~lib/typedarray/Uint16Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 99 + call $~lib/typedarray/Uint16Array#every + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2 + i32.rem_s + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 100 + call $~lib/typedarray/Int32Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 101 + call $~lib/typedarray/Int32Array#every + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2 + i32.rem_u + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 102 + call $~lib/typedarray/Uint32Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 103 + call $~lib/typedarray/Uint32Array#every + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 2 + i64.rem_s + i64.const 0 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 2 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 104 + call $~lib/typedarray/Int64Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 105 + call $~lib/typedarray/Int64Array#every + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 2 + i64.rem_u + i64.const 0 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i64.const 2 + i64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 106 + call $~lib/typedarray/Uint64Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 107 + call $~lib/typedarray/Uint64Array#every + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + i32.reinterpret_f32 + local.set $2 + local.get $1 + i32.reinterpret_f32 + local.set $3 + local.get $2 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $4 + local.get $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $5 + local.get $2 + i32.const -2147483648 + i32.and + local.set $6 + local.get $3 + i32.const 1 + i32.shl + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $4 + i32.const 255 + i32.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f32.ne + end + if + local.get $0 + local.get $1 + f32.mul + local.set $8 + local.get $8 + local.get $8 + f32.div + return + end + local.get $2 + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $7 + i32.le_u + if + local.get $9 + local.get $7 + i32.eq + if + f32.const 0 + local.get $0 + f32.mul + return + end + local.get $0 + return + end + local.get $4 + i32.eqz + if + local.get $4 + local.get $2 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $4 + local.get $2 + i32.const 0 + local.get $4 + i32.sub + i32.const 1 + i32.add + i32.shl + local.set $2 + else + local.get $2 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $2 + local.get $2 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $2 + end + local.get $5 + i32.eqz + if + local.get $5 + local.get $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.set $5 + local.get $3 + i32.const 0 + local.get $5 + i32.sub + i32.const 1 + i32.add + i32.shl + local.set $3 + else + local.get $3 + i32.const -1 + i32.const 9 + i32.shr_u + i32.and + local.set $3 + local.get $3 + i32.const 1 + i32.const 23 + i32.shl + i32.or + local.set $3 + end + loop $while-continue|0 + local.get $4 + local.get $5 + i32.gt_s + local.set $10 + local.get $10 + if + local.get $2 + local.get $3 + i32.ge_u + if + local.get $2 + local.get $3 + i32.eq + if + f32.const 0 + local.get $0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $2 + i32.const 1 + i32.shl + local.set $2 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $3 + i32.ge_u + if + local.get $2 + local.get $3 + i32.eq + if + f32.const 0 + local.get $0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $2 + i32.const 8 + i32.shl + i32.clz + local.set $11 + local.get $4 + local.get $11 + i32.sub + local.set $4 + local.get $2 + local.get $11 + i32.shl + local.set $2 + local.get $4 + i32.const 0 + i32.gt_s + if + local.get $2 + i32.const 1 + i32.const 23 + i32.shl + i32.sub + local.set $2 + local.get $2 + local.get $4 + i32.const 23 + i32.shl + i32.or + local.set $2 + else + local.get $2 + i32.const 0 + local.get $4 + i32.sub + i32.const 1 + i32.add + i32.shr_u + local.set $2 + end + local.get $2 + local.get $6 + i32.or + local.set $2 + local.get $2 + f32.reinterpret_i32 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f32.const 2 + call $~lib/math/NativeMathf.mod + f32.const 0 + f32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $f32_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f32.const 2 + f32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 108 + call $~lib/typedarray/Float32Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 109 + call $~lib/typedarray/Float32Array#every + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 f64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + local.get $0 + i64.reinterpret_f64 + local.set $2 + local.get $1 + i64.reinterpret_f64 + local.set $3 + local.get $2 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $4 + local.get $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $5 + local.get $2 + i64.const 63 + i64.shr_u + local.set $6 + local.get $3 + i64.const 1 + i64.shl + local.set $7 + local.get $7 + i64.const 0 + i64.eq + if (result i32) + i32.const 1 + else + local.get $4 + i64.const 2047 + i64.eq + end + if (result i32) + i32.const 1 + else + local.get $1 + local.get $1 + f64.ne + end + if + local.get $0 + local.get $1 + f64.mul + local.set $8 + local.get $8 + local.get $8 + f64.div + return + end + local.get $2 + i64.const 1 + i64.shl + local.set $9 + local.get $9 + local.get $7 + i64.le_u + if + local.get $9 + local.get $7 + i64.eq + if + f64.const 0 + local.get $0 + f64.mul + return + end + local.get $0 + return + end + local.get $4 + i64.const 0 + i64.ne + i32.eqz + if + local.get $4 + local.get $2 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $4 + local.get $2 + i64.const 0 + local.get $4 + i64.sub + i64.const 1 + i64.add + i64.shl + local.set $2 + else + local.get $2 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $2 + local.get $2 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $2 + end + local.get $5 + i64.const 0 + i64.ne + i32.eqz + if + local.get $5 + local.get $3 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.set $5 + local.get $3 + i64.const 0 + local.get $5 + i64.sub + i64.const 1 + i64.add + i64.shl + local.set $3 + else + local.get $3 + i64.const -1 + i64.const 12 + i64.shr_u + i64.and + local.set $3 + local.get $3 + i64.const 1 + i64.const 52 + i64.shl + i64.or + local.set $3 + end + loop $while-continue|0 + local.get $4 + local.get $5 + i64.gt_s + local.set $10 + local.get $10 + if + local.get $2 + local.get $3 + i64.ge_u + if + local.get $2 + local.get $3 + i64.eq + if + f64.const 0 + local.get $0 + f64.mul + return + end + local.get $2 + local.get $3 + i64.sub + local.set $2 + end + local.get $2 + i64.const 1 + i64.shl + local.set $2 + local.get $4 + i64.const 1 + i64.sub + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $3 + i64.ge_u + if + local.get $2 + local.get $3 + i64.eq + if + f64.const 0 + local.get $0 + f64.mul + return + end + local.get $2 + local.get $3 + i64.sub + local.set $2 + end + local.get $2 + i64.const 11 + i64.shl + i64.clz + local.set $11 + local.get $4 + local.get $11 + i64.sub + local.set $4 + local.get $2 + local.get $11 + i64.shl + local.set $2 + local.get $4 + i64.const 0 + i64.gt_s + if + local.get $2 + i64.const 1 + i64.const 52 + i64.shl + i64.sub + local.set $2 + local.get $2 + local.get $4 + i64.const 52 + i64.shl + i64.or + local.set $2 + else + local.get $2 + i64.const 0 + local.get $4 + i64.sub + i64.const 1 + i64.add + i64.shr_u + local.set $2 + end + local.get $2 + local.get $6 + i64.const 63 + i64.shl + i64.or + local.set $2 + local.get $2 + f64.reinterpret_i64 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f64.const 2 + call $~lib/math/NativeMath.mod + f64.const 0 + f64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + block $for-continue|0 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $f64_i32_i32_=>_i32) + if + br $for-continue|0 + end + i32.const 0 + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + i32.const 1 + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + end + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f64.const 2 + f64.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 110 + call $~lib/typedarray/Float64Array#every + local.set $2 + local.get $2 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 461 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 111 + call $~lib/typedarray/Float64Array#every + local.set $3 + local.get $3 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/typedarray/forEachValues + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + local.get $3 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int8Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 112 + call $~lib/typedarray/Int8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/typedarray/forEachValues + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.const 255 + i32.and + local.get $3 + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 113 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/typedarray/forEachValues + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.const 255 + i32.and + local.get $3 + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 114 + call $~lib/typedarray/Uint8ClampedArray#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/typedarray/forEachValues + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + local.get $3 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 115 + call $~lib/typedarray/Int16Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/typedarray/forEachValues + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + i32.const 65535 + i32.and + local.get $3 + i32.const 65535 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 116 + call $~lib/typedarray/Uint16Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/typedarray/forEachValues + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 117 + call $~lib/typedarray/Int32Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/typedarray/forEachValues + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 118 + call $~lib/typedarray/Uint32Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/typedarray/forEachValues + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 119 + call $~lib/typedarray/Int64Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/typedarray/forEachValues + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $i64_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 120 + call $~lib/typedarray/Uint64Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/typedarray/forEachValues + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + f32.convert_i32_s + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $f32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 121 + call $~lib/typedarray/Float32Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/typedarray/forEachValues + local.get $1 + call $~lib/array/Array#__get + local.set $3 + local.get $0 + local.get $3 + f64.convert_i32_s + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachSelf + local.get $2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 + loop $for-loop|0 + local.get $5 + local.get $6 + i32.lt_s + local.set $7 + local.get $7 + if + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $f64_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 122 + call $~lib/typedarray/Float64Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 495 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 0 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load8_s + local.set $8 + local.get $6 + local.get $7 + i32.load8_s + i32.store8 + local.get $7 + local.get $8 + i32.store8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $std/typedarray/testArrayReverseValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $5 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $3 + call $~lib/typedarray/Int8Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + loop $for-loop|1 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + call $~lib/typedarray/Int8Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $6 + i32.sub + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int8Array#subarray + local.tee $6 + call $~lib/typedarray/Int8Array#reverse + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + call $~lib/typedarray/Int8Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Uint8Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 0 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load8_u + local.set $8 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 + local.get $7 + local.get $8 + i32.store8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + ) + (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + i32.const 12 + i32.const 4 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $5 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 0 + i32.shl + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $std/typedarray/testArrayReverseValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $5 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $3 + call $~lib/typedarray/Uint8Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + loop $for-loop|1 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + call $~lib/typedarray/Uint8Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $6 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint8Array#subarray + local.tee $6 + call $~lib/typedarray/Uint8Array#reverse + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 0 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load8_u + local.set $8 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 + local.get $7 + local.get $8 + i32.store8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + ) + (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + i32.const 12 + i32.const 5 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $5 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 0 + i32.shl + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $std/typedarray/testArrayReverseValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + loop $for-loop|1 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $6 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.tee $6 + call $~lib/typedarray/Uint8ClampedArray#reverse + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load16_s + local.set $8 + local.get $6 + local.get $7 + i32.load16_s + i32.store16 + local.get $7 + local.get $8 + i32.store16 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + ) + (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + i32.const 12 + i32.const 6 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $5 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $std/typedarray/testArrayReverseValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $5 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $3 + call $~lib/typedarray/Int16Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + loop $for-loop|1 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + call $~lib/typedarray/Int16Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $6 + i32.sub + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int16Array#subarray + local.tee $6 + call $~lib/typedarray/Int16Array#reverse + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Uint16Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load16_u + local.set $8 + local.get $6 + local.get $7 + i32.load16_u + i32.store16 + local.get $7 + local.get $8 + i32.store16 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + ) + (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + i32.const 12 + i32.const 7 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $5 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $std/typedarray/testArrayReverseValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $5 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $3 + call $~lib/typedarray/Uint16Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + loop $for-loop|1 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + call $~lib/typedarray/Uint16Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $6 + i32.sub + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint16Array#subarray + local.tee $6 + call $~lib/typedarray/Uint16Array#reverse + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load + local.set $8 + local.get $6 + local.get $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $std/typedarray/testArrayReverseValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $5 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $3 + call $~lib/typedarray/Int32Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + loop $for-loop|1 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + call $~lib/typedarray/Int32Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $6 + i32.sub + call $~lib/array/Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int32Array#subarray + local.tee $6 + call $~lib/typedarray/Int32Array#reverse + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Uint32Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.set $7 + local.get $6 + i32.load + local.set $8 + local.get $6 + local.get $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + ) + (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + i32.const 12 + i32.const 9 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $5 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $std/typedarray/testArrayReverseValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $5 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $3 + call $~lib/typedarray/Uint32Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + loop $for-loop|1 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + call $~lib/typedarray/Uint32Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $6 + i32.sub + call $~lib/array/Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint32Array#subarray + local.tee $6 + call $~lib/typedarray/Uint32Array#reverse + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 7 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $6 + i64.load + local.set $8 + local.get $6 + local.get $7 + i64.load + i64.store + local.get $7 + local.get $8 + i64.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + ) + (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + i32.const 12 + i32.const 10 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $5 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $std/typedarray/testArrayReverseValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $5 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $3 + call $~lib/typedarray/Int64Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + loop $for-loop|1 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + call $~lib/typedarray/Int64Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $6 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int64Array#subarray + local.tee $6 + call $~lib/typedarray/Int64Array#reverse + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Uint64Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $6 + i64.load + local.set $8 + local.get $6 + local.get $7 + i64.load + i64.store + local.get $7 + local.get $8 + i64.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + ) + (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + i32.const 12 + i32.const 11 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $5 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $std/typedarray/testArrayReverseValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $5 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $3 + call $~lib/typedarray/Uint64Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + loop $for-loop|1 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + call $~lib/typedarray/Uint64Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $6 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Uint64Array#subarray + local.tee $6 + call $~lib/typedarray/Uint64Array#reverse + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Float32Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.set $7 + local.get $6 + f32.load + local.set $8 + local.get $6 + local.get $7 + f32.load + f32.store + local.get $7 + local.get $8 + f32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + ) + (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $6 + local.get $4 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $4 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $4 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $6 + local.get $3 + i32.add + local.tee $7 + i32.const 0 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + else + local.get $3 + local.tee $7 + local.get $6 + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + end + local.set $3 + local.get $3 + local.tee $7 + local.get $4 + local.tee $8 + local.get $7 + local.get $8 + i32.gt_s + select + local.set $3 + i32.const 12 + i32.const 12 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $5 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $7 + local.get $5 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $7 + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + local.get $7 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $std/typedarray/testArrayReverseValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $5 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $3 + call $~lib/typedarray/Float32Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + loop $for-loop|1 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + call $~lib/typedarray/Float32Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $6 + i32.sub + call $~lib/array/Array#__get + f32.convert_i32_s + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float32Array#subarray + local.tee $6 + call $~lib/typedarray/Float32Array#reverse + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Float64Array#get:length + i32.const 1 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + local.set $5 + local.get $5 + if + local.get $2 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $2 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $6 + f64.load + local.set $8 + local.get $6 + local.get $7 + f64.load + f64.store + local.get $7 + local.get $8 + f64.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|0 + end + end + local.get $1 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $std/typedarray/testArrayReverseValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 0 + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $5 + local.get $6 + local.get $0 + local.get $6 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $3 + call $~lib/typedarray/Float64Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + loop $for-loop|1 + local.get $6 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $3 + local.get $6 + call $~lib/typedarray/Float64Array#__get + local.get $0 + local.get $1 + i32.const 1 + i32.sub + local.get $6 + i32.sub + call $~lib/array/Array#__get + f64.convert_i32_s + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float64Array#subarray + local.tee $6 + call $~lib/typedarray/Float64Array#reverse + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 529 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 530 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 531 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 532 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $4 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $4 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Int8Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int8Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Int8Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf|trampoline + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int8Array#lastIndexOf|trampoline + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Int8Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int8Array#subarray + local.set $6 + local.get $6 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int8Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Int8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Uint8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Uint8Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf|trampoline + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf|trampoline + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint8Array#subarray + local.set $6 + local.get $6 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $4 + i32.const 255 + i32.and + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf|trampoline + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint8ClampedArray#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $6 + local.get $6 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $4 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Int16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $4 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Int16Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int16Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Int16Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf|trampoline + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf|trampoline + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Int16Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int16Array#subarray + local.set $6 + local.get $6 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int16Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Int16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $4 + i32.const 65535 + i32.and + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Uint16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $4 + i32.const 65535 + i32.and + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Uint16Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint16Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint16Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf|trampoline + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf|trampoline + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint16Array#subarray + local.set $6 + local.get $6 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Int32Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf|trampoline + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf|trampoline + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int32Array#subarray + local.set $6 + local.get $6 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + i32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Uint32Array#lastIndexOf|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint32Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint32Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf|trampoline + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf|trampoline + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint32Array#subarray + local.set $6 + local.get $6 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Int64Array#lastIndexOf|trampoline (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i64.const 0 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const -1 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i32.const 10 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i32.const -100 + call $~lib/typedarray/Int64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i64.const 0 + i32.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf|trampoline + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i64.const -1 + i32.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf|trampoline + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i32.const 100 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i32.const -10 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i32.const -11 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int64Array#subarray + local.set $6 + local.get $6 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 4 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 5 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 9 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 10 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 5 + i32.const 1 + call $~lib/typedarray/Int64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 5 + i32.const 2 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $4 + i64.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Uint64Array#lastIndexOf|trampoline (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Uint64Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint64Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i64.const 0 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const -1 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i32.const 10 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i32.const -100 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i64.const 0 + i32.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf|trampoline + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i64.const -1 + i32.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf|trampoline + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i32.const 100 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i32.const -10 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i64.const 1 + i32.const -11 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Uint64Array#subarray + local.set $6 + local.get $6 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 4 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 5 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 9 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 10 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 5 + i32.const 1 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i64.const 5 + i32.const 2 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $4 + f32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $4 + f32.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Float32Array#lastIndexOf|trampoline (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Float32Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float32Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + f32.const 0 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 11 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const -1 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 3 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 3 + i32.const 2 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 3 + i32.const 3 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 3 + i32.const 4 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 1 + i32.const 10 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 1 + i32.const -100 + call $~lib/typedarray/Float32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + f32.const 0 + i32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf|trampoline + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + f32.const 11 + i32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + f32.const -1 + i32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + f32.const 3 + i32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf|trampoline + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 3 + i32.const 4 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 3 + i32.const 3 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 3 + i32.const 2 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 1 + i32.const 100 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 1 + i32.const -10 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f32.const 1 + i32.const -11 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Float32Array#subarray + local.set $6 + local.get $6 + f32.const 3 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f32.const 4 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f32.const 5 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f32.const 9 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f32.const 10 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f32.const 11 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f32.const 5 + i32.const 1 + call $~lib/typedarray/Float32Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f32.const 5 + i32.const 2 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $4 + f64.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.set $6 + else + local.get $6 + local.get $7 + i32.ge_s + if + local.get $7 + i32.const 1 + i32.sub + local.set $6 + end + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + i32.const 0 + i32.ge_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $4 + f64.eq + if + local.get $6 + local.set $10 + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|0 + end + end + i32.const -1 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + end + ) + (func $~lib/typedarray/Float64Array#lastIndexOf|trampoline (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + call $~lib/typedarray/Float64Array#get:length + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float64Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $std/typedarray/testArrayIndexOfAndLastIndexOfValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + f64.const 0 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 11 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const -1 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 3 + i32.const 2 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 3 + i32.const 4 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 1 + i32.const 10 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 1 + i32.const -100 + call $~lib/typedarray/Float64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + f64.const 0 + i32.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf|trampoline + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + f64.const 11 + i32.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + f64.const -1 + i32.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf|trampoline + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $3 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf|trampoline + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 3 + i32.const 4 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 3 + i32.const 2 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 1 + i32.const 100 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 1 + i32.const -10 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + f64.const 1 + i32.const -11 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Float64Array#subarray + local.set $6 + local.get $6 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f64.const 4 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f64.const 5 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f64.const 9 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f64.const 10 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f64.const 11 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f64.const 5 + i32.const 1 + call $~lib/typedarray/Float64Array#indexOf + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + f64.const 5 + i32.const 2 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#includes (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 f64) + (local $11 i32) + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 1 + drop + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const 0 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $10 + local.get $10 + local.get $4 + f64.eq + if (result i32) + i32.const 1 + else + local.get $10 + local.get $10 + f64.ne + local.get $4 + local.get $4 + f64.ne + i32.and + end + if + i32.const 1 + local.set $11 + local.get $5 + call $~lib/rt/pure/__release + local.get $11 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const 0 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + end + ) + (func $~lib/typedarray/Float32Array#includes (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 f32) + (local $11 i32) + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 1 + drop + local.get $3 + local.set $6 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $7 + local.get $7 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $7 + i32.ge_s + end + if + i32.const 0 + local.set $8 + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 0 + i32.lt_s + if + local.get $7 + local.get $6 + i32.add + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.set $6 + end + local.get $5 + i32.load offset=4 + local.set $8 + loop $while-continue|0 + local.get $6 + local.get $7 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $8 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $10 + local.get $10 + local.get $4 + f32.eq + if (result i32) + i32.const 1 + else + local.get $10 + local.get $10 + f32.ne + local.get $4 + local.get $4 + f32.ne + i32.and + end + if + i32.const 1 + local.set $11 + local.get $5 + call $~lib/rt/pure/__release + local.get $11 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $while-continue|0 + end + end + i32.const 0 + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + end + ) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa32_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i32.const 10000 + i32.div_u + local.set $4 + local.get $1 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $7 + i32.const 1968 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 1968 + local.get $7 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $9 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $9 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $1 + i32.const 100 + i32.div_u + local.set $3 + local.get $1 + i32.const 100 + i32.rem_u + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 1968 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 1968 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store + else + local.get $2 + i32.const 1 + i32.sub + local.set $2 + i32.const 48 + local.get $1 + i32.add + local.set $11 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $11 + i32.store16 + end + ) + (func $~lib/util/number/itoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.eqz + if + i32.const 1936 + return + end + local.get $0 + i32.const 31 + i32.shr_u + local.set $1 + local.get $1 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + call $~lib/util/number/decimalCount32 + local.get $1 + i32.add + local.set $2 + local.get $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + local.set $6 + local.get $0 + local.set $5 + local.get $2 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_lut + local.get $1 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + call $~lib/rt/pure/__retain + ) + (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/number/itoa32 + return + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/number/itoa_stream (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.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $0 + i32.const 0 + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 0 + i32.lt_s + local.set $3 + local.get $3 + if + i32.const 0 + local.get $2 + i32.sub + local.set $2 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $3 + i32.add + return + end + local.get $3 + local.set $4 + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/util/number/decimalCount32 + i32.add + local.set $4 + local.get $0 + local.set $7 + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut + local.get $4 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $6 + local.get $2 + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $7 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $8 + local.get $6 + local.tee $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $9 + local.get $9 + local.get $8 + i32.sub + local.set $10 + local.get $10 + i32.eqz + if + i32.const 1920 + call $~lib/rt/pure/__retain + return + end + local.get $8 + i32.eqz + if (result i32) + local.get $9 + local.get $3 + i32.const 1 + i32.shl + i32.eq + else + i32.const 0 + end + if + local.get $0 + call $~lib/rt/pure/__retain + return + end + local.get $10 + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $11 + local.get $0 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + call $~lib/rt/pure/__retain + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 1920 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_s + call $~lib/util/number/itoa + local.tee $4 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 11 + local.get $6 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $6 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int8Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/util/string/compareImpl (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) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $5 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $4 + i32.const 4 + i32.ge_u + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-continue|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + local.set $7 + local.get $7 + br_if $do-continue|0 + end + end + end + loop $while-continue|1 + local.get $4 + local.tee $7 + i32.const 1 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + local.set $10 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $10 + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + local.set $7 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $7 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $3 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $3 + call $~lib/util/string/compareImpl + i32.eqz + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/typedarray/Int8Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 2384 + call $~lib/typedarray/Int8Array#join + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + i32.const 0 + drop + local.get $1 + i32.const 2384 + call $~lib/typedarray/Int8Array#join + local.tee $2 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 629 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int8Array#toString + local.tee $3 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 630 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + 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 + ) + (func $~lib/util/number/utoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.eqz + if + i32.const 1936 + return + end + local.get $0 + call $~lib/util/number/decimalCount32 + local.set $1 + local.get $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $2 + local.get $2 + local.set $5 + local.get $0 + local.set $4 + local.get $1 + local.set $3 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/number/utoa32_lut + local.get $2 + call $~lib/rt/pure/__retain + ) + (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.const 255 + i32.and + call $~lib/util/number/utoa32 + return + ) + (func $~lib/util/number/itoa_stream (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.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $0 + i32.const 0 + local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $2 + i32.const 255 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $3 + local.set $4 + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $4 + local.get $2 + i32.const 255 + i32.and + call $~lib/util/number/decimalCount32 + i32.add + local.set $4 + local.get $0 + local.set $7 + local.get $2 + i32.const 255 + i32.and + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut + local.get $4 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 1920 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load8_u + call $~lib/util/number/itoa + local.tee $4 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 10 + local.get $6 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $6 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint8Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 2384 + call $~lib/typedarray/Uint8Array#join + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + drop + local.get $1 + i32.const 2384 + call $~lib/typedarray/Uint8Array#join + local.tee $2 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 629 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Uint8Array#toString + local.tee $3 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 630 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + 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 + ) + (func $~lib/typedarray/Uint8ClampedArray#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/typedarray/Uint8ClampedArray#toString (param $0 i32) (result i32) + local.get $0 + i32.const 2384 + call $~lib/typedarray/Uint8ClampedArray#join + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + i32.const 0 + drop + local.get $1 + i32.const 2384 + call $~lib/typedarray/Uint8ClampedArray#join + local.tee $2 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 629 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#toString + local.tee $3 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 630 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + 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 + ) + (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/number/itoa32 + return + ) + (func $~lib/util/number/itoa_stream (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.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $0 + i32.const 0 + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 0 + i32.lt_s + local.set $3 + local.get $3 + if + i32.const 0 + local.get $2 + i32.sub + local.set $2 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $3 + i32.add + return + end + local.get $3 + local.set $4 + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $4 + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/util/number/decimalCount32 + i32.add + local.set $4 + local.get $0 + local.set $7 + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut + local.get $4 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 1920 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load16_s + call $~lib/util/number/itoa + local.tee $4 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 11 + local.get $6 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $6 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int16Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/typedarray/Int16Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 2384 + call $~lib/typedarray/Int16Array#join + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + drop + local.get $1 + i32.const 2384 + call $~lib/typedarray/Int16Array#join + local.tee $2 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 629 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int16Array#toString + local.tee $3 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 630 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + 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 + ) + (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $0 + i32.const 65535 + i32.and + call $~lib/util/number/utoa32 + return + ) + (func $~lib/util/number/itoa_stream (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.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $0 + i32.const 0 + local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $2 + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 65535 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $3 + local.set $4 + i32.const 2 + i32.const 4 + i32.le_u + drop + local.get $4 + local.get $2 + i32.const 65535 + i32.and + call $~lib/util/number/decimalCount32 + i32.add + local.set $4 + local.get $0 + local.set $7 + local.get $2 + i32.const 65535 + i32.and + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut + local.get $4 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 1920 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load16_u + call $~lib/util/number/itoa + local.tee $4 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 10 + local.get $6 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $6 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint16Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint16Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/typedarray/Uint16Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 2384 + call $~lib/typedarray/Uint16Array#join + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + i32.const 0 + drop + local.get $1 + i32.const 2384 + call $~lib/typedarray/Uint16Array#join + local.tee $2 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 629 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Uint16Array#toString + local.tee $3 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 630 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + 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 + ) + (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $0 + call $~lib/util/number/itoa32 + return + ) + (func $~lib/util/number/itoa_stream (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.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $0 + i32.const 0 + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 0 + i32.lt_s + local.set $3 + local.get $3 + if + i32.const 0 + local.get $2 + i32.sub + local.set $2 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $2 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + local.get $3 + i32.add + return + end + local.get $3 + local.set $4 + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $4 + local.get $2 + call $~lib/util/number/decimalCount32 + i32.add + local.set $4 + local.get $0 + local.set $7 + local.get $2 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut + local.get $4 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 1920 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load + call $~lib/util/number/itoa + local.tee $4 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 11 + local.get $6 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $6 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int32Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/typedarray/Int32Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 2384 + call $~lib/typedarray/Int32Array#join + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + i32.const 0 + drop + local.get $1 + i32.const 2384 + call $~lib/typedarray/Int32Array#join + local.tee $2 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 629 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int32Array#toString + local.tee $3 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 630 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + 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 + ) + (func $~lib/util/number/itoa (param $0 i32) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $0 + call $~lib/util/number/utoa32 + return + ) + (func $~lib/util/number/itoa_stream (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.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $0 + i32.const 0 + local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $2 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $3 + local.set $4 + i32.const 4 + i32.const 4 + i32.le_u + drop + local.get $4 + local.get $2 + call $~lib/util/number/decimalCount32 + i32.add + local.set $4 + local.get $0 + local.set $7 + local.get $2 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut + local.get $4 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 1920 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load + call $~lib/util/number/itoa + local.tee $4 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 10 + local.get $6 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $6 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint32Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint32Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/typedarray/Uint32Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 2384 + call $~lib/typedarray/Uint32Array#join + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + i32.const 0 + drop + local.get $1 + i32.const 2384 + call $~lib/typedarray/Uint32Array#join + local.tee $2 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 629 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Uint32Array#toString + local.tee $3 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 630 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + 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 + ) + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if + local.get $0 + i64.const 1000000000000 + i64.lt_u + if + i32.const 10 + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + return + else + i32.const 13 + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if + i32.const 16 + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.add + return + else + i32.const 18 + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/util/number/utoa64_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i64) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + local.set $3 + local.get $3 + if + local.get $1 + i64.const 100000000 + i64.div_u + local.set $4 + local.get $1 + local.get $4 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $5 + local.get $4 + local.set $1 + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $7 + local.get $6 + i32.const 100 + i32.div_u + local.set $8 + local.get $6 + i32.const 100 + i32.rem_u + local.set $9 + local.get $7 + i32.const 100 + i32.div_u + local.set $10 + local.get $7 + i32.const 100 + i32.rem_u + local.set $11 + i32.const 1968 + local.get $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 1968 + local.get $11 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 1968 + local.get $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 1968 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $13 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $12 + local.get $13 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_lut + ) + (func $~lib/util/number/itoa64 (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 1936 + return + end + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $1 + local.get $1 + if + i64.const 0 + local.get $0 + i64.sub + local.set $0 + end + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $3 + local.get $3 + call $~lib/util/number/decimalCount32 + local.get $1 + i32.add + local.set $4 + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $2 + local.get $2 + local.set $7 + local.get $3 + local.set $6 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.get $1 + i32.add + local.set $4 + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $2 + local.get $2 + local.set $6 + local.get $0 + local.set $8 + local.get $4 + local.set $5 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_lut + end + local.get $1 + if + local.get $2 + i32.const 45 + i32.store16 + end + local.get $2 + call $~lib/rt/pure/__retain + ) + (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $0 + call $~lib/util/number/itoa64 + return + ) + (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $0 + i32.const 0 + local.set $3 + i32.const 1 + drop + local.get $2 + i64.const 0 + i64.lt_s + local.set $3 + local.get $3 + if + i64.const 0 + local.get $2 + i64.sub + local.set $2 + local.get $0 + i32.const 45 + i32.store16 + end + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $2 + i64.const 10 + i64.lt_u + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + i64.const 48 + i64.or + i64.store16 + i32.const 1 + local.get $3 + i32.add + return + end + local.get $3 + local.set $4 + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $2 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $2 + i32.wrap_i64 + local.set $5 + local.get $4 + local.get $5 + call $~lib/util/number/decimalCount32 + i32.add + local.set $4 + local.get $0 + local.set $8 + local.get $5 + local.set $7 + local.get $4 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/number/utoa32_lut + else + local.get $4 + local.get $2 + call $~lib/util/number/decimalCount64High + i32.add + local.set $4 + local.get $0 + local.set $7 + local.get $2 + local.set $9 + local.get $4 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $9 + local.get $6 + call $~lib/util/number/utoa64_lut + end + local.get $4 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i64) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 1920 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i64.load + call $~lib/util/number/itoa + local.tee $4 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 21 + local.get $6 + i32.add + local.get $3 + i32.mul + i32.const 21 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $6 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Int64Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/typedarray/Int64Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 2384 + call $~lib/typedarray/Int64Array#join + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + drop + local.get $1 + i32.const 2384 + call $~lib/typedarray/Int64Array#join + local.tee $2 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 629 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Int64Array#toString + local.tee $3 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 630 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + 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 + ) + (func $~lib/util/number/utoa64 (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i64) + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 1936 + return + end + local.get $0 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.set $2 + local.get $2 + call $~lib/util/number/decimalCount32 + local.set $3 + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $1 + local.get $1 + local.set $6 + local.get $2 + local.set $5 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_lut + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.set $3 + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $1 + local.get $1 + local.set $5 + local.get $0 + local.set $7 + local.get $3 + local.set $4 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $5 + local.get $7 + local.get $4 + call $~lib/util/number/utoa64_lut + end + local.get $1 + call $~lib/rt/pure/__retain + ) + (func $~lib/util/number/itoa (param $0 i64) (result i32) + i32.const 1 + i32.eqz + drop + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $0 + call $~lib/util/number/utoa64 + return + ) + (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $0 + i32.const 0 + local.set $3 + i32.const 0 + drop + i32.const 0 + i32.const 1 + i32.le_s + drop + i32.const 0 + drop + local.get $2 + i64.const 10 + i64.lt_u + if + local.get $0 + local.get $2 + i64.const 48 + i64.or + i64.store16 + i32.const 1 + return + end + local.get $3 + local.set $4 + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $2 + global.get $~lib/builtins/u32.MAX_VALUE + i64.extend_i32_u + i64.le_u + if + local.get $2 + i32.wrap_i64 + local.set $5 + local.get $4 + local.get $5 + call $~lib/util/number/decimalCount32 + i32.add + local.set $4 + local.get $0 + local.set $8 + local.get $5 + local.set $7 + local.get $4 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/number/utoa32_lut + else + local.get $4 + local.get $2 + call $~lib/util/number/decimalCount64High + i32.add + local.set $4 + local.get $0 + local.set $7 + local.get $2 + local.set $9 + local.get $4 + local.set $6 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $7 + local.get $9 + local.get $6 + call $~lib/util/number/utoa64_lut + end + local.get $4 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i64) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 1920 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i64.load + call $~lib/util/number/itoa + local.tee $4 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 20 + local.get $6 + i32.add + local.get $3 + i32.mul + i32.const 20 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $6 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/itoa_stream + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Uint64Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint64Array#get:length + local.get $1 + call $~lib/util/string/joinIntegerArray + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/typedarray/Uint64Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 2384 + call $~lib/typedarray/Uint64Array#join + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + i32.const 0 + drop + local.get $1 + i32.const 2384 + call $~lib/typedarray/Uint64Array#join + local.tee $2 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 629 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Uint64Array#toString + local.tee $3 + i32.const 2416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 630 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + 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 + ) + (func $~lib/util/number/genDigits (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) + (local $10 i64) + (local $11 i32) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i64) + i32.const 0 + local.get $4 + i32.sub + local.set $7 + i64.const 1 + local.get $7 + i64.extend_i32_s + i64.shl + local.set $8 + local.get $8 + i64.const 1 + i64.sub + local.set $9 + local.get $3 + local.get $1 + i64.sub + local.set $10 + local.get $4 + local.set $11 + local.get $3 + local.get $7 + i64.extend_i32_s + i64.shr_u + i32.wrap_i64 + local.set $12 + local.get $3 + local.get $9 + i64.and + local.set $13 + local.get $12 + call $~lib/util/number/decimalCount32 + local.set $14 + local.get $6 + local.set $15 + loop $while-continue|0 + local.get $14 + i32.const 0 + i32.gt_s + local.set $16 + local.get $16 + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $14 + local.set $18 + local.get $18 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $18 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $18 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $18 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $18 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $18 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $18 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $18 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $18 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $18 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $12 + i32.const 1000000000 + i32.div_u + local.set $17 + local.get $12 + i32.const 1000000000 + i32.rem_u + local.set $12 + br $break|1 + end + local.get $12 + i32.const 100000000 + i32.div_u + local.set $17 + local.get $12 + i32.const 100000000 + i32.rem_u + local.set $12 + br $break|1 + end + local.get $12 + i32.const 10000000 + i32.div_u + local.set $17 + local.get $12 + i32.const 10000000 + i32.rem_u + local.set $12 + br $break|1 + end + local.get $12 + i32.const 1000000 + i32.div_u + local.set $17 + local.get $12 + i32.const 1000000 + i32.rem_u + local.set $12 + br $break|1 + end + local.get $12 + i32.const 100000 + i32.div_u + local.set $17 + local.get $12 + i32.const 100000 + i32.rem_u + local.set $12 + br $break|1 + end + local.get $12 + i32.const 10000 + i32.div_u + local.set $17 + local.get $12 + i32.const 10000 + i32.rem_u + local.set $12 + br $break|1 + end + local.get $12 + i32.const 1000 + i32.div_u + local.set $17 + local.get $12 + i32.const 1000 + i32.rem_u + local.set $12 + br $break|1 + end + local.get $12 + i32.const 100 + i32.div_u + local.set $17 + local.get $12 + i32.const 100 + i32.rem_u + local.set $12 + br $break|1 + end + local.get $12 + i32.const 10 + i32.div_u + local.set $17 + local.get $12 + i32.const 10 + i32.rem_u + local.set $12 + br $break|1 + end + local.get $12 + local.set $17 + i32.const 0 + local.set $12 + br $break|1 + end + i32.const 0 + local.set $17 + br $break|1 + end + local.get $17 + local.get $15 + i32.or + if + local.get $0 + local.get $15 + local.tee $18 + i32.const 1 + i32.add + local.set $15 + local.get $18 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $17 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $14 + i32.const 1 + i32.sub + local.set $14 + local.get $12 + i64.extend_i32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.get $13 + i64.add + local.set $19 + local.get $19 + local.get $5 + i64.le_u + if + global.get $~lib/util/number/_K + local.get $14 + i32.add + global.set $~lib/util/number/_K + local.get $0 + local.set $24 + local.get $15 + local.set $18 + local.get $5 + local.set $23 + local.get $19 + local.set $22 + i32.const 3520 + local.get $14 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.set $21 + local.get $10 + local.set $20 + local.get $24 + local.get $18 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $25 + local.get $25 + i32.load16_u + local.set $26 + loop $while-continue|3 + local.get $22 + local.get $20 + i64.lt_u + if (result i32) + local.get $23 + local.get $22 + i64.sub + local.get $21 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $22 + local.get $21 + i64.add + local.get $20 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $20 + local.get $22 + i64.sub + local.get $22 + local.get $21 + i64.add + local.get $20 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $27 + local.get $27 + if + local.get $26 + i32.const 1 + i32.sub + local.set $26 + local.get $22 + local.get $21 + i64.add + local.set $22 + br $while-continue|3 + end + end + local.get $25 + local.get $26 + i32.store16 + local.get $15 + return + end + br $while-continue|0 + end + end + loop $while-continue|4 + i32.const 1 + local.set $16 + local.get $16 + if + local.get $13 + i64.const 10 + i64.mul + local.set $13 + local.get $5 + i64.const 10 + i64.mul + local.set $5 + local.get $13 + local.get $7 + i64.extend_i32_s + i64.shr_u + local.set $23 + local.get $23 + local.get $15 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $0 + local.get $15 + local.tee $26 + i32.const 1 + i32.add + local.set $15 + local.get $26 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $23 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $13 + local.get $9 + i64.and + local.set $13 + local.get $14 + i32.const 1 + i32.sub + local.set $14 + local.get $13 + local.get $5 + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $14 + i32.add + global.set $~lib/util/number/_K + local.get $10 + i32.const 3520 + i32.const 0 + local.get $14 + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $10 + local.get $0 + local.set $18 + local.get $15 + local.set $27 + local.get $5 + local.set $28 + local.get $13 + local.set $22 + local.get $8 + local.set $21 + local.get $10 + local.set $20 + local.get $18 + local.get $27 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $26 + local.get $26 + i32.load16_u + local.set $25 + loop $while-continue|6 + local.get $22 + local.get $20 + i64.lt_u + if (result i32) + local.get $28 + local.get $22 + i64.sub + local.get $21 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $22 + local.get $21 + i64.add + local.get $20 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $20 + local.get $22 + i64.sub + local.get $22 + local.get $21 + i64.add + local.get $20 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + local.set $24 + local.get $24 + if + local.get $25 + i32.const 1 + i32.sub + local.set $25 + local.get $22 + local.get $21 + i64.add + local.set $22 + br $while-continue|6 + end + end + local.get $26 + local.get $25 + i32.store16 + local.get $15 + return + end + br $while-continue|4 + end + end + unreachable + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.set $3 + local.get $1 + local.get $3 + i32.le_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if + local.get $1 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.const 48 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $3 + i32.const 2 + i32.add + return + else + local.get $3 + i32.const 0 + i32.gt_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $4 + local.get $4 + i32.const 2 + i32.add + local.get $4 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + return + else + i32.const -6 + local.get $3 + i32.lt_s + if (result i32) + local.get $3 + i32.const 0 + i32.le_s + else + i32.const 0 + end + if + i32.const 2 + local.get $3 + i32.sub + local.set $4 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 48 + i32.const 46 + i32.const 16 + i32.shl + i32.or + i32.store + i32.const 2 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $4 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + local.get $4 + i32.add + return + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $6 + local.get $6 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $6 + i32.sub + local.set $6 + end + local.get $6 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $7 + local.get $5 + local.set $10 + local.get $6 + local.set $9 + local.get $7 + local.set $8 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/number/utoa32_lut + local.get $5 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $7 + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + else + local.get $1 + i32.const 1 + i32.shl + local.set $7 + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $7 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $7 + i32.add + i32.const 101 + i32.store16 offset=2 + local.get $1 + local.get $0 + local.get $7 + i32.add + i32.const 4 + i32.add + local.set $9 + local.get $3 + i32.const 1 + i32.sub + local.set $8 + local.get $8 + i32.const 0 + i32.lt_s + local.set $4 + local.get $4 + if + i32.const 0 + local.get $8 + i32.sub + local.set $8 + end + local.get $8 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $5 + local.get $9 + local.set $11 + local.get $8 + local.set $6 + local.get $5 + local.set $10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $11 + local.get $6 + local.get $10 + call $~lib/util/number/utoa32_lut + local.get $9 + i32.const 45 + i32.const 43 + local.get $4 + select + i32.store16 + local.get $5 + i32.add + local.set $1 + local.get $1 + i32.const 2 + i32.add + return + end + unreachable + end + unreachable + end + unreachable + end + unreachable + ) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 i64) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i64) + (local $25 i64) + (local $26 i32) + (local $27 i64) + (local $28 i32) + local.get $1 + f64.const 0 + f64.lt + local.set $2 + local.get $2 + if + local.get $1 + f64.neg + local.set $1 + local.get $0 + i32.const 45 + i32.store16 + end + local.get $1 + local.set $5 + local.get $0 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $6 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $7 + local.get $6 + i64.const 4503599627370495 + i64.and + local.set $8 + local.get $7 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $8 + i64.add + local.set $9 + local.get $7 + i32.const 1 + local.get $7 + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $7 + local.get $9 + local.set $11 + local.get $7 + local.set $10 + local.get $11 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $12 + local.get $10 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $12 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $12 + local.get $13 + local.get $14 + i32.sub + local.set $13 + i32.const 1 + local.get $11 + i64.const 4503599627370496 + i64.eq + i32.add + local.set $15 + local.get $12 + global.set $~lib/util/number/_frc_plus + local.get $11 + local.get $15 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $10 + local.get $15 + i32.sub + local.get $13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $10 + i32.const -61 + local.get $10 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $16 + local.get $16 + i32.trunc_f64_s + local.set $15 + local.get $15 + local.get $15 + f64.convert_i32_s + local.get $16 + f64.ne + i32.add + local.set $15 + local.get $15 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $14 + i32.const 348 + local.get $14 + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 2608 + local.get $14 + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 3328 + local.get $14 + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $9 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $9 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $9 + local.get $7 + local.get $14 + i32.sub + local.set $7 + global.get $~lib/util/number/_frc_pow + local.set $12 + global.get $~lib/util/number/_exp_pow + local.set $15 + local.get $9 + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $24 + local.get $24 + i64.const 2147483647 + i64.add + local.set $24 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $24 + i64.const 32 + i64.shr_u + local.set $24 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $24 + i64.add + local.set $24 + local.get $7 + local.set $10 + local.get $15 + local.set $13 + local.get $10 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $10 + global.get $~lib/util/number/_frc_plus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $23 + local.get $11 + i64.const 4294967295 + i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u + local.set $21 + local.get $11 + i64.const 32 + i64.shr_u + local.set $20 + local.get $23 + local.get $22 + i64.mul + local.set $19 + local.get $21 + local.get $22 + i64.mul + local.get $19 + i64.const 32 + i64.shr_u + i64.add + local.set $18 + local.get $23 + local.get $20 + i64.mul + local.get $18 + i64.const 4294967295 + i64.and + i64.add + local.set $25 + local.get $25 + i64.const 2147483647 + i64.add + local.set $25 + local.get $18 + i64.const 32 + i64.shr_u + local.set $18 + local.get $25 + i64.const 32 + i64.shr_u + local.set $25 + local.get $21 + local.get $20 + i64.mul + local.get $18 + i64.add + local.get $25 + i64.add + i64.const 1 + i64.sub + local.set $25 + global.get $~lib/util/number/_exp + local.set $26 + local.get $15 + local.set $13 + local.get $26 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $26 + global.get $~lib/util/number/_frc_minus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $27 + local.get $27 + i64.const 2147483647 + i64.add + local.set $27 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $27 + i64.const 32 + i64.shr_u + local.set $27 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $27 + i64.add + i64.const 1 + i64.add + local.set $27 + local.get $25 + local.get $27 + i64.sub + local.set $23 + local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 + call $~lib/util/number/genDigits + local.set $28 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $28 + local.get $2 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.set $28 + local.get $28 + local.get $2 + i32.add + ) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + f64.const 0 + f64.eq + if + i32.const 2464 + return + end + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $0 + local.get $0 + f64.ne + if + i32.const 2496 + return + end + i32.const 2528 + i32.const 2576 + local.get $0 + f64.const 0 + f64.lt + select + call $~lib/rt/pure/__retain + return + end + i32.const 28 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $1 + local.get $1 + local.get $0 + call $~lib/util/number/dtoa_core + local.set $2 + local.get $2 + i32.const 28 + i32.eq + if + local.get $1 + call $~lib/rt/pure/__retain + return + end + local.get $1 + i32.const 0 + local.get $2 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/tlsf/__free + local.get $3 + ) + (func $~lib/util/number/dtoa_stream (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $0 + local.get $2 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + return + end + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $2 + local.get $2 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + return + else + local.get $2 + f64.const 0 + f64.lt + local.set $3 + local.get $3 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $3 + i32.add + return + end + unreachable + end + local.get $0 + local.get $2 + call $~lib/util/number/dtoa_core + ) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 f32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 1920 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa + local.tee $4 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 28 + local.get $6 + i32.add + local.get $3 + i32.mul + i32.const 28 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + f64.promote_f32 + call $~lib/util/number/dtoa_stream + i32.add + local.set $9 + local.get $6 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + f64.promote_f32 + call $~lib/util/number/dtoa_stream + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Float32Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Float32Array#get:length + local.get $1 + call $~lib/util/string/joinFloatArray + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/typedarray/Float32Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 2384 + call $~lib/typedarray/Float32Array#join + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 5 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 4 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + i32.const 1 + drop + local.get $1 + i32.const 2384 + call $~lib/typedarray/Float32Array#join + local.tee $2 + i32.const 3584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 626 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Float32Array#toString + local.tee $3 + i32.const 3584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 627 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + 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 + ) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 f64) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 1920 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + f64.load + call $~lib/util/number/dtoa + local.tee $4 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 28 + local.get $6 + i32.add + local.get $3 + i32.mul + i32.const 28 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/dtoa_stream + i32.add + local.set $9 + local.get $6 + if + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + local.get $10 + call $~lib/util/number/dtoa_stream + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/typedarray/Float64Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Float64Array#get:length + local.get $1 + call $~lib/util/string/joinFloatArray + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/typedarray/Float64Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 2384 + call $~lib/typedarray/Float64Array#join + ) + (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 5 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + i32.const 1 + drop + local.get $1 + i32.const 2384 + call $~lib/typedarray/Float64Array#join + local.tee $2 + i32.const 3584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 626 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/typedarray/Float64Array#toString + local.tee $3 + i32.const 3584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 627 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + 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 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 1073741808 + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 54 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $2 + local.get $2 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $2 + call $~lib/rt/pure/__retain + ) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + ) + (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 0 + i32.and + i32.or + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 0 + i32.and + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 0 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + i32.const 12 + i32.const 4 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $5 + call $~lib/rt/pure/__retain + i32.store + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + local.set $8 + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Uint8Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array.wrap + ) + (func $~lib/arraybuffer/ArrayBuffer#slice (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.get $0 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $1 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $2 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $7 + local.get $7 + local.get $0 + local.get $1 + i32.add + local.get $6 + call $~lib/memory/memory.copy + local.get $7 + call $~lib/rt/pure/__retain + ) + (func $~lib/typedarray/Int8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 0 + i32.and + i32.or + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 0 + i32.and + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 0 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + i32.const 12 + i32.const 3 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $5 + call $~lib/rt/pure/__retain + i32.store + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + local.set $8 + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Int8Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int8Array.wrap + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $std/typedarray/testArrayWrapValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.load + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $6 + i32.const 0 + local.set $7 + i32.const 1 + drop + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int8Array.wrap|trampoline + local.set $5 + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + local.set $7 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $3 + local.get $5 + call $~lib/typedarray/Int8Array#__get + local.get $7 + local.get $5 + call $~lib/typedarray/Int8Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $std/typedarray/testArrayWrapValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.load + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap|trampoline + local.set $5 + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + local.set $7 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $3 + local.get $5 + call $~lib/typedarray/Uint8Array#__get + local.get $7 + local.get $5 + call $~lib/typedarray/Uint8Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 0 + i32.and + i32.or + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 0 + i32.and + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 0 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + i32.const 12 + i32.const 5 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $5 + call $~lib/rt/pure/__retain + i32.store + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + local.set $8 + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Uint8ClampedArray.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8ClampedArray.wrap + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $std/typedarray/testArrayWrapValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.load + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray.wrap|trampoline + local.set $5 + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + local.set $7 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $3 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $7 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 1 + i32.and + i32.or + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 1 + i32.and + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 1 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + i32.const 12 + i32.const 6 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $5 + call $~lib/rt/pure/__retain + i32.store + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + local.set $8 + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Int16Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int16Array.wrap + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $std/typedarray/testArrayWrapValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.load + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int16Array.wrap|trampoline + local.set $5 + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + local.set $7 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $3 + local.get $5 + call $~lib/typedarray/Int16Array#__get + local.get $7 + local.get $5 + call $~lib/typedarray/Int16Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 1 + i32.and + i32.or + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 1 + i32.and + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 1 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + i32.const 12 + i32.const 7 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $5 + call $~lib/rt/pure/__retain + i32.store + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + local.set $8 + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Uint16Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint16Array.wrap + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $std/typedarray/testArrayWrapValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.load + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint16Array.wrap|trampoline + local.set $5 + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + local.set $7 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $3 + local.get $5 + call $~lib/typedarray/Uint16Array#__get + local.get $7 + local.get $5 + call $~lib/typedarray/Uint16Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 3 + i32.and + i32.or + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 3 + i32.and + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 2 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + i32.const 12 + i32.const 8 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $5 + call $~lib/rt/pure/__retain + i32.store + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + local.set $8 + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Int32Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array.wrap + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $std/typedarray/testArrayWrapValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.load + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array.wrap|trampoline + local.set $5 + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + local.set $7 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $3 + local.get $5 + call $~lib/typedarray/Int32Array#__get + local.get $7 + local.get $5 + call $~lib/typedarray/Int32Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 3 + i32.and + i32.or + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 3 + i32.and + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 2 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + i32.const 12 + i32.const 9 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $5 + call $~lib/rt/pure/__retain + i32.store + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + local.set $8 + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Uint32Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint32Array.wrap + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $std/typedarray/testArrayWrapValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.load + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint32Array.wrap|trampoline + local.set $5 + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + local.set $7 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $3 + local.get $5 + call $~lib/typedarray/Uint32Array#__get + local.get $7 + local.get $5 + call $~lib/typedarray/Uint32Array#__get + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 7 + i32.and + i32.or + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 7 + i32.and + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 3 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + i32.const 12 + i32.const 10 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $5 + call $~lib/rt/pure/__retain + i32.store + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + local.set $8 + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Int64Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array.wrap + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $std/typedarray/testArrayWrapValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.load + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int64Array.wrap|trampoline + local.set $5 + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + local.set $7 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $3 + local.get $5 + call $~lib/typedarray/Int64Array#__get + local.get $7 + local.get $5 + call $~lib/typedarray/Int64Array#__get + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 7 + i32.and + i32.or + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 7 + i32.and + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 3 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + i32.const 12 + i32.const 11 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $5 + call $~lib/rt/pure/__retain + i32.store + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + local.set $8 + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Uint64Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint64Array.wrap + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $std/typedarray/testArrayWrapValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.load + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint64Array.wrap|trampoline + local.set $5 + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + local.set $7 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $3 + local.get $5 + call $~lib/typedarray/Uint64Array#__get + local.get $7 + local.get $5 + call $~lib/typedarray/Uint64Array#__get + i64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 3 + i32.and + i32.or + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 3 + i32.and + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 2 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + i32.const 12 + i32.const 12 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $5 + call $~lib/rt/pure/__retain + i32.store + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + local.set $8 + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Float32Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float32Array.wrap + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $std/typedarray/testArrayWrapValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.load + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Float32Array.wrap|trampoline + local.set $5 + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + local.set $7 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $3 + local.get $5 + call $~lib/typedarray/Float32Array#__get + local.get $7 + local.get $5 + call $~lib/typedarray/Float32Array#__get + f32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + local.set $7 + local.get $4 + local.get $7 + i32.gt_u + local.get $4 + i32.const 7 + i32.and + i32.or + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $3 + i32.const -1 + i32.eq + if + local.get $7 + i32.const 7 + i32.and + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $4 + i32.sub + local.set $6 + else + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + else + local.get $3 + i32.const 3 + i32.shl + local.set $6 + local.get $4 + local.get $6 + i32.add + local.get $7 + i32.gt_s + if + local.get $5 + call $~lib/rt/pure/__release + i32.const 32 + i32.const 432 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + i32.const 12 + i32.const 13 + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $5 + call $~lib/rt/pure/__retain + i32.store + local.get $8 + local.get $6 + i32.store offset=8 + local.get $8 + local.get $5 + local.get $4 + i32.add + i32.store offset=4 + local.get $8 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + local.set $8 + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + ) + (func $~lib/typedarray/Float64Array.wrap|trampoline (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float64Array.wrap + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $std/typedarray/testArrayWrapValues + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + i32.const 0 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.set $3 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $3 + local.get $4 + local.get $0 + local.get $4 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.load + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $6 + i32.const 0 + local.set $7 + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Float64Array.wrap|trampoline + local.set $5 + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + local.set $7 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $1 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $3 + local.get $5 + call $~lib/typedarray/Float64Array#__get + local.get $7 + local.get $5 + call $~lib/typedarray/Float64Array#__get + f64.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Int8Array#__get + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__unchecked_get + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 4048 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + local.get $6 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.set $1 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.set $2 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.const 10 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $4 + global.get $std/typedarray/setSource1 + i32.const 0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 14 + i32.const 4016 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $4 + global.get $std/typedarray/setSource2 + i32.const 3 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 14 + i32.const 4096 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $4 + local.get $0 + i32.const 6 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 14 + i32.const 4128 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + i32.const 1 + drop + local.get $4 + global.get $std/typedarray/setSource3 + i32.const 2 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 14 + i32.const 4160 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource7 + i32.const 7 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $4 + i32.const 10 + i32.const 0 + i32.const 14 + i32.const 4192 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint8Array#__get + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__unchecked_get + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 4256 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.set $1 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.set $2 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $4 + global.get $std/typedarray/setSource1 + i32.const 0 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 4224 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $4 + global.get $std/typedarray/setSource2 + i32.const 3 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 4304 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $4 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int64Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 4336 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + i32.const 1 + drop + local.get $4 + global.get $std/typedarray/setSource3 + i32.const 2 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 4368 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource7 + i32.const 7 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $4 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 4400 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#__get + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__unchecked_get + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 4464 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 1 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $11 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.wrap_i64 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i64.extend_i32_s + i32.const 255 + local.get $11 + i32.wrap_i64 + i32.sub + i32.const 31 + i32.shr_s + i64.extend_i32_s + local.get $11 + i64.or + i64.and + i64.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 1 + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + f64.const 0 + f64.const 255 + local.get $11 + f64.min + f64.max + i32.trunc_f64_u + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.set $1 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.set $2 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $4 + global.get $std/typedarray/setSource1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 4432 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $4 + global.get $std/typedarray/setSource2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 4528 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $4 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 4560 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + i32.const 1 + drop + local.get $4 + global.get $std/typedarray/setSource3 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 4592 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource7 + i32.const 7 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + i32.const 1 + drop + local.get $4 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 4624 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Int16Array#__get + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__unchecked_get + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 4704 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + local.get $6 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.set $1 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.set $2 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.const 10 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $4 + global.get $std/typedarray/setSource1 + i32.const 0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 1 + i32.const 22 + i32.const 4656 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource2 + i32.const 3 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 1 + i32.const 22 + i32.const 4752 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $4 + local.get $0 + i32.const 6 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + local.get $4 + i32.const 10 + i32.const 1 + i32.const 22 + i32.const 4800 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + i32.const 1 + drop + local.get $4 + global.get $std/typedarray/setSource3 + i32.const 2 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 1 + i32.const 22 + i32.const 4848 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource7 + i32.const 7 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $4 + i32.const 10 + i32.const 1 + i32.const 22 + i32.const 4896 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Uint16Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint16Array#__get + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__unchecked_get + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 4992 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 1 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store16 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.set $1 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.set $2 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $4 + global.get $std/typedarray/setSource1 + i32.const 0 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 1 + i32.const 23 + i32.const 4944 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $4 + global.get $std/typedarray/setSource2 + i32.const 3 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 1 + i32.const 23 + i32.const 5040 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $4 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> + local.get $4 + i32.const 10 + i32.const 1 + i32.const 23 + i32.const 5088 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + i32.const 1 + drop + local.get $4 + global.get $std/typedarray/setSource3 + i32.const 2 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 1 + i32.const 23 + i32.const 5136 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource7 + i32.const 7 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $4 + i32.const 10 + i32.const 1 + i32.const 23 + i32.const 5184 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Int32Array#__get + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__unchecked_get + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 5296 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + local.get $6 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store32 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.set $1 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.set $2 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.const 10 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $4 + global.get $std/typedarray/setSource1 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 2 + i32.const 15 + i32.const 5232 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $4 + global.get $std/typedarray/setSource2 + i32.const 3 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 2 + i32.const 15 + i32.const 5344 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $4 + local.get $0 + i32.const 6 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + local.get $4 + i32.const 10 + i32.const 2 + i32.const 15 + i32.const 5408 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + i32.const 1 + drop + local.get $4 + global.get $std/typedarray/setSource3 + i32.const 2 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 2 + i32.const 15 + i32.const 5472 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource7 + i32.const 7 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $4 + i32.const 10 + i32.const 2 + i32.const 15 + i32.const 5536 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Uint32Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint32Array#__get + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__unchecked_get + local.set $6 + local.get $5 + local.get $6 + i32.ne + if + i32.const 5664 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i32_u + local.get $6 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $11 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store32 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $11 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.set $1 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.set $2 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $4 + global.get $std/typedarray/setSource1 + i32.const 0 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 2 + i32.const 24 + i32.const 5600 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $4 + global.get $std/typedarray/setSource2 + i32.const 3 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 2 + i32.const 24 + i32.const 5712 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $4 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> + local.get $4 + i32.const 10 + i32.const 2 + i32.const 24 + i32.const 5776 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + i32.const 1 + drop + local.get $4 + global.get $std/typedarray/setSource3 + i32.const 2 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 2 + i32.const 24 + i32.const 5840 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource7 + i32.const 7 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $4 + i32.const 10 + i32.const 2 + i32.const 24 + i32.const 5904 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Int64Array#__get + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__unchecked_get + local.set $6 + local.get $5 + local.get $6 + i64.ne + if + i32.const 6064 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i64_s + local.get $6 + f64.convert_i64_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $11 + i64.trunc_f32_s + else + i64.const 0 + end + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $11 + i64.trunc_f64_s + else + i64.const 0 + end + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i64.load8_u + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i64.load16_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i64.load8_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.set $1 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.set $2 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.const 10 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $4 + global.get $std/typedarray/setSource1 + i32.const 0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 3 + i32.const 25 + i32.const 5968 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $4 + global.get $std/typedarray/setSource2 + i32.const 3 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 3 + i32.const 25 + i32.const 6112 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $4 + local.get $0 + i32.const 6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + local.get $4 + i32.const 10 + i32.const 3 + i32.const 25 + i32.const 6208 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + i32.const 1 + drop + local.get $4 + global.get $std/typedarray/setSource3 + i32.const 2 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 3 + i32.const 25 + i32.const 6304 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource7 + i32.const 7 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $4 + i32.const 10 + i32.const 3 + i32.const 25 + i32.const 6400 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i64.load32_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Uint64Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Uint64Array#__get + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__unchecked_get + local.set $6 + local.get $5 + local.get $6 + i64.ne + if + i32.const 6592 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.convert_i64_u + local.get $6 + f64.convert_i64_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $11 + i64.trunc_f32_u + else + i64.const 0 + end + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + local.get $11 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $11 + i64.trunc_f64_u + else + i64.const 0 + end + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i64.load8_u + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i64.load16_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + i32.const 0 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i64.load8_s + i64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.set $1 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.set $2 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $4 + global.get $std/typedarray/setSource1 + i32.const 0 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 3 + i32.const 26 + i32.const 6496 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $4 + global.get $std/typedarray/setSource2 + i32.const 3 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 3 + i32.const 26 + i32.const 6640 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $4 + local.get $0 + i32.const 6 + call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> + local.get $4 + i32.const 10 + i32.const 3 + i32.const 26 + i32.const 6736 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + i32.const 1 + drop + local.get $4 + global.get $std/typedarray/setSource3 + i32.const 2 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 3 + i32.const 26 + i32.const 6832 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource7 + i32.const 7 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $4 + i32.const 10 + i32.const 3 + i32.const 26 + i32.const 6928 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + f32.convert_i32_s + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result f32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + (local $6 f32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Float32Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Float32Array#__get + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__unchecked_get + local.set $6 + local.get $5 + local.get $6 + f32.ne + if + i32.const 7088 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + f64.promote_f32 + local.get $6 + f64.promote_f32 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.eq + if (result i32) + i32.const 2 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.load offset=4 + local.get $4 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + f32.convert_i64_s + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + f32.convert_i32_u + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + f32.convert_i32_s + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 2 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + f32.convert_i32_s + f32.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.set $1 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.set $2 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.const 10 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $4 + global.get $std/typedarray/setSource1 + i32.const 0 + call $~lib/typedarray/Float32Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 2 + i32.const 19 + i32.const 7024 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $4 + global.get $std/typedarray/setSource2 + i32.const 3 + call $~lib/typedarray/Float32Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 2 + i32.const 19 + i32.const 7136 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $4 + local.get $0 + i32.const 6 + call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> + local.get $4 + i32.const 10 + i32.const 2 + i32.const 19 + i32.const 7200 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + i32.const 0 + drop + local.get $4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource7 + i32.const 7 + call $~lib/typedarray/Float32Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $4 + i32.const 10 + i32.const 2 + i32.const 19 + i32.const 7264 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $9 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + f64.convert_i32_s + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#__unchecked_get (param $0 i32) (param $1 i32) (result f64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/typedarray/Float64Array#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/array/Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $3 + loop $for-loop|0 + local.get $3 + local.get $2 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $3 + call $~lib/typedarray/Float64Array#__get + local.set $5 + local.get $1 + local.get $3 + call $~lib/array/Array#__unchecked_get + local.set $6 + local.get $5 + local.get $6 + f64.ne + if + i32.const 7424 + i32.const 3 + local.get $3 + f64.convert_i32_s + local.get $5 + local.get $6 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + i32.eq + if (result i32) + i32.const 3 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 1 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + f64.promote_f32 + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 3 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int64Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + f64.convert_i64_s + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + f64.convert_i32_u + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 1 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + f64.convert_i32_s + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/array/Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.eq + if (result i32) + i32.const 3 + i32.const 0 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 0 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/array/Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 0 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.eqz + else + i32.const 0 + end + drop + i32.const 1 + if (result i32) + i32.const 0 + i32.eqz + else + i32.const 0 + end + drop + local.get $6 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + f64.convert_i32_s + f64.store + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.set $1 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.set $2 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + i32.const 10 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $4 + global.get $std/typedarray/setSource1 + i32.const 0 + call $~lib/typedarray/Float64Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 3 + i32.const 20 + i32.const 7328 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $4 + global.get $std/typedarray/setSource2 + i32.const 3 + call $~lib/typedarray/Float64Array#set<~lib/array/Array> + local.get $4 + i32.const 10 + i32.const 3 + i32.const 20 + i32.const 7472 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $4 + local.get $0 + i32.const 6 + call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> + local.get $4 + i32.const 10 + i32.const 3 + i32.const 20 + i32.const 7568 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + i32.const 0 + drop + local.get $4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> + local.get $4 + local.get $2 + i32.const 4 + call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> + local.get $4 + global.get $std/typedarray/setSource7 + i32.const 7 + call $~lib/typedarray/Float64Array#set<~lib/array/Array> + i32.const 0 + drop + local.get $4 + i32.const 10 + i32.const 3 + i32.const 20 + i32.const 7664 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $9 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Float32Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Float32Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 1 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + local.get $11 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $11 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Int32Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $11 + i32.sub + i32.const 31 + i32.shr_s + local.get $11 + i32.or + i32.and + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.set $5 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + drop + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $~lib/typedarray/Uint32Array#get:length + local.get $3 + i32.add + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 368 + i32.const 432 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1 + i32.eq + if (result i32) + i32.const 0 + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + i32.const 1 + if (result i32) + i32.const 0 + else + i32.const 0 + end + i32.eqz + else + i32.const 0 + end + drop + local.get $5 + i32.load offset=4 + local.get $3 + i32.const 0 + i32.shl + i32.add + local.set $6 + local.get $4 + i32.load offset=4 + local.set $7 + local.get $4 + call $~lib/typedarray/Uint32Array#get:length + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $8 + i32.lt_s + local.set $10 + local.get $10 + if + i32.const 1 + drop + i32.const 0 + drop + local.get $7 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + i32.const 0 + i32.eqz + drop + local.get $6 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.const 255 + local.tee $12 + local.get $11 + local.tee $13 + local.get $12 + local.get $13 + i32.lt_u + select + i32.store8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $start:std/typedarray + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + i32.const 0 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 12 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 + local.set $0 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 8 + call $~lib/typedarray/Float64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 7 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 6 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 7 + f64.const 8 + call $~lib/typedarray/Float64Array#__set + 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 + local.set $0 + local.get $0 + call $~lib/typedarray/Float64Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 16 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 32 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~argumentsLength + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#sort|trampoline + call $~lib/rt/pure/__release + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + if (result i32) + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.set $0 + local.get $0 + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 137 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 496 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 576 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 608 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 640 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 158 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 672 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.set $1 + local.get $1 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $1 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 0 + i32.const 14 + i32.const 704 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 736 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + 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 + local.get $6 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.set $9 + local.get $9 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $9 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $9 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $9 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $9 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $9 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 768 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $1 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 816 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 864 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 912 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 960 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.set $8 + local.get $8 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $8 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 197 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 12 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 199 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + i32.const 2 + i32.const 15 + i32.const 1008 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1040 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.set $7 + local.get $7 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 5 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 1 + i32.const 6 + call $~lib/typedarray/Int8Array#subarray + local.set $0 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 222 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Int8Array#get:length + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 224 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 5 + call $~lib/typedarray/Int8Array#subarray + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 228 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $~lib/typedarray/Int8Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 229 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.set $3 + local.get $3 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=8 + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.set $3 + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $8 + local.get $3 + i32.const 0 + i32.const 3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $0 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1088 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $2 + local.get $3 + call $~lib/rt/pure/__release + local.get $2 + local.set $3 + local.get $3 + i32.const 1 + i32.const 3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $2 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1136 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 250 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $9 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + local.set $3 + local.get $3 + i32.const 1 + i32.const 2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1184 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 252 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $1 + local.get $3 + call $~lib/rt/pure/__release + local.get $1 + local.set $3 + local.get $3 + i32.const 2 + i32.const 2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $1 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1232 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $10 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 254 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + local.set $3 + local.get $3 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $7 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1280 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $12 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 256 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $11 + local.get $3 + call $~lib/rt/pure/__release + local.get $11 + local.set $3 + local.get $3 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $11 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1328 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $14 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $13 + local.get $3 + call $~lib/rt/pure/__release + local.get $13 + local.set $3 + local.get $3 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $13 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1376 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $16 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $15 + local.get $3 + call $~lib/rt/pure/__release + local.get $15 + local.set $3 + local.get $3 + i32.const 0 + i32.const -2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $15 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1424 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $18 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $17 + local.get $3 + call $~lib/rt/pure/__release + local.get $17 + local.set $3 + local.get $3 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $17 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1472 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $20 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 264 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $19 + local.get $3 + call $~lib/rt/pure/__release + local.get $19 + local.set $3 + local.get $3 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $19 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1520 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $22 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 266 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $21 + local.get $3 + call $~lib/rt/pure/__release + local.get $21 + local.set $3 + local.get $3 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $21 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1568 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $24 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $23 + local.get $3 + call $~lib/rt/pure/__release + local.get $23 + local.set $3 + local.get $3 + i32.const -4 + i32.const -3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $23 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1616 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $26 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + local.get $13 + call $~lib/rt/pure/__release + local.get $16 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $18 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $20 + call $~lib/rt/pure/__release + local.get $19 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + local.get $21 + call $~lib/rt/pure/__release + local.get $24 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.set $26 + local.get $26 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $26 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $26 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $26 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $26 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $26 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.set $23 + local.get $23 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $23 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 283 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $23 + i32.load offset=8 + i32.const 12 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 284 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $26 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#slice + local.set $24 + local.get $24 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 287 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $24 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $24 + call $~lib/typedarray/Int32Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 289 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $24 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 290 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $24 + i32.load offset=8 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $23 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#slice + local.set $21 + local.get $21 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $21 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $21 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 296 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $21 + i32.load offset=8 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $26 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#slice + local.set $22 + local.get $22 + local.get $26 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 300 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $22 + call $~lib/typedarray/Int32Array#get:length + local.get $26 + call $~lib/typedarray/Int32Array#get:length + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 301 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $22 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $26 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 302 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $22 + i32.load offset=8 + local.get $26 + i32.load offset=8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $26 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release + local.get $24 + call $~lib/rt/pure/__release + local.get $21 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + call $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + i32.const 0 + i32.const 1 + call $~lib/typedarray/Float64Array#constructor + local.set $21 + local.get $21 + i32.const 0 + f64.const nan:0x8000000000000 + call $~lib/typedarray/Float64Array#__set + local.get $21 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $21 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/typedarray/Float64Array#includes + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + call $~lib/typedarray/Float32Array#constructor + local.set $22 + local.get $22 + i32.const 0 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + local.get $22 + f32.const nan:0x400000 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $22 + f32.const nan:0x400000 + i32.const 0 + call $~lib/typedarray/Float32Array#includes + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $21 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $21 + i32.const 2 + global.set $~argumentsLength + local.get $21 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap|trampoline + local.set $22 + local.get $22 + call $~lib/typedarray/Uint8Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 691 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $25 + local.get $21 + call $~lib/rt/pure/__release + local.get $25 + local.set $21 + i32.const 2 + global.set $~argumentsLength + local.get $21 + i32.const 2 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap|trampoline + local.set $3 + local.get $22 + call $~lib/rt/pure/__release + local.get $3 + local.set $22 + local.get $22 + call $~lib/typedarray/Uint8Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 695 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $21 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + call $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + i32.const 0 + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.set $22 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.set $21 + local.get $21 + i32.const 0 + f32.const 400 + call $~lib/typedarray/Float32Array#__set + local.get $21 + i32.const 1 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + local.get $21 + i32.const 2 + f32.const inf + call $~lib/typedarray/Float32Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Int64Array#constructor + local.set $3 + local.get $3 + i32.const 0 + i64.const -10 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 100 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 2 + i64.const 10 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 3 + i64.const 300 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#constructor + local.set $25 + local.get $25 + i32.const 0 + i32.const 300 + call $~lib/typedarray/Int32Array#__set + local.get $25 + i32.const 1 + i32.const -1 + call $~lib/typedarray/Int32Array#__set + local.get $22 + local.get $21 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> + local.get $22 + local.get $3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + local.get $22 + local.get $25 + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> + local.get $22 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 7760 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $23 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint32Array#constructor + local.set $24 + local.get $24 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $24 + i32.const 1 + i32.const 300 + call $~lib/typedarray/Uint32Array#__set + local.get $24 + i32.const 2 + i32.const 100 + call $~lib/typedarray/Uint32Array#__set + local.get $24 + i32.const 3 + i32.const -1 + call $~lib/typedarray/Uint32Array#__set + i32.const 0 + i32.const 4 + call $~lib/typedarray/Int16Array#constructor + local.set $26 + local.get $26 + i32.const 0 + i32.const -10 + call $~lib/typedarray/Int16Array#__set + local.get $26 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#__set + local.get $26 + i32.const 2 + i32.const 10 + call $~lib/typedarray/Int16Array#__set + local.get $26 + i32.const 3 + i32.const 300 + call $~lib/typedarray/Int16Array#__set + local.get $22 + local.get $24 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> + local.get $22 + local.get $26 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + local.get $22 + i32.const 10 + i32.const 0 + i32.const 21 + i32.const 7792 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $20 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $22 + call $~lib/rt/pure/__release + local.get $21 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $25 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release + local.get $24 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release + local.get $20 + call $~lib/rt/pure/__release + ) + (func $~start + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end + call $start:std/typedarray + ) + (func $~lib/rt/pure/__collect + i32.const 1 + drop + return + ) + (func $~lib/rt/pure/decrement (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and + local.set $2 + i32.const 1 + drop + local.get $0 + call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 122 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 126 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + else + i32.const 1 + drop + local.get $2 + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 136 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return + end + i32.const 1 + drop + i32.const 1 + drop + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 69 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + ) + (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + ) + (func $~lib/staticarray/StaticArray#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + (local $2 i32) + block $switch$1$default + block $switch$1$case$28 + block $switch$1$case$27 + block $switch$1$case$26 + block $switch$1$case$25 + block $switch$1$case$24 + block $switch$1$case$23 + block $switch$1$case$22 + block $switch$1$case$21 + block $switch$1$case$20 + block $switch$1$case$19 + block $switch$1$case$18 + block $switch$1$case$17 + block $switch$1$case$16 + block $switch$1$case$4 + block $switch$1$case$2 + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$16 $switch$1$case$17 $switch$1$case$18 $switch$1$case$19 $switch$1$case$20 $switch$1$case$21 $switch$1$case$22 $switch$1$case$23 $switch$1$case$24 $switch$1$case$25 $switch$1$case$26 $switch$1$case$27 $switch$1$case$28 $switch$1$default + end + return + end + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit + end + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/staticarray/StaticArray#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/staticarray/StaticArray#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/staticarray/StaticArray#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + unreachable + ) +) diff --git a/tests/compiler/ternary.untouched.wat b/tests/compiler/ternary.untouched.wat index 3dcfd384e1..cdb295fc39 100644 --- a/tests/compiler/ternary.untouched.wat +++ b/tests/compiler/ternary.untouched.wat @@ -6,32 +6,16 @@ (export "memory" (memory $0)) (start $~start) (func $start:ternary - i32.const 0 - drop - i32.const 1 - drop i32.const 1 drop i32.const 1 drop - i32.const 0 - drop - i32.const 1 - drop i32.const 1 drop - i32.const 0 - drop i32.const 1 global.set $ternary/a i32.const 1 - drop - i32.const 1 global.set $ternary/a - i32.const 0 - drop - i32.const 1 - drop i32.const 1 global.set $ternary/a ) From 63d87635cd40422d06569869171567e526ef3aea Mon Sep 17 00:00:00 2001 From: dcode Date: Sat, 25 Apr 2020 06:28:56 +0200 Subject: [PATCH 3/5] more --- src/compiler.ts | 47 +++++++++++++------------ src/module.ts | 5 --- tests/compiler/mandelbrot.untouched.wat | 8 +++-- tests/compiler/std/libm.untouched.wat | 8 +++-- tests/compiler/std/math.untouched.wat | 8 +++-- 5 files changed, 43 insertions(+), 33 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index 07489c7a66..e3a9bb627d 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -2910,8 +2910,10 @@ export class Compiler extends DiagnosticEmitter { let isStatic = false; if (isConst) { if (initExpr) { - initExpr = module.precomputeExpression(initExpr); - if (getExpressionId(initExpr) == ExpressionId.Const) { + let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + assert(getExpressionId(precomp) == ExpressionId.Const); + initExpr = precomp; let local = new Local(name, -1, type, flow.parentFunction); switch (getExpressionType(initExpr)) { case NativeType.I32: { @@ -8313,19 +8315,21 @@ export class Compiler extends DiagnosticEmitter { var nativeElementType = elementType.toNativeType(); for (let i = 0; i < length; ++i) { let expression = expressions[i]; - let expr = expression - ? module.precomputeExpression( - this.compileExpression(expression, elementType, - Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN - ) - ) - : this.makeZero(elementType); - if (getExpressionId(expr) == ExpressionId.Const) { - assert(getExpressionType(expr) == nativeElementType); + if (expression) { + let expr = this.compileExpression(expression, elementType, + Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN + ); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + assert(getExpressionId(precomp) == ExpressionId.Const); + expr = precomp; + } else { + isStatic = false; + } + values[i] = expr; } else { - isStatic = false; + values[i] = this.makeZero(elementType); } - values[i] = expr; } // if the array is static, make a static arraybuffer segment @@ -8481,22 +8485,21 @@ export class Compiler extends DiagnosticEmitter { var isStatic = true; for (let i = 0; i < length; ++i) { let expression = expressions[i]; - let expr: ExpressionRef; if (expression) { - expr = module.precomputeExpression( - this.compileExpression(expression, elementType, - Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN - ) + let expr = this.compileExpression(expression, elementType, + Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN ); - if (getExpressionId(expr) == ExpressionId.Const) { - assert(getExpressionType(expr) == nativeElementType); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + assert(getExpressionId(precomp) == ExpressionId.Const); + expr = precomp; } else { isStatic = false; } + values[i] = expr; } else { - expr = this.makeZero(elementType); + values[i] = this.makeZero(elementType); } - values[i] = expr; } var isWasm64 = this.options.isWasm64; diff --git a/src/module.ts b/src/module.ts index 57226050dc..2c18cf8a95 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2195,11 +2195,6 @@ export function hasSideEffects(expr: ExpressionRef, features: FeatureFlags = Fea return getSideEffects(expr, features) != SideEffects.None; } -export function hasSideEffectsExceptGets(expr: ExportRef, features: FeatureFlags = FeatureFlags.All): bool { - const mask = ~(SideEffects.ReadsLocal | SideEffects.ReadsGlobal); - return (getSideEffects(expr, features) & mask) != 0; -} - // helpers // can't do stack allocation here: STACKTOP is a global in WASM but a hidden variable in asm.js diff --git a/tests/compiler/mandelbrot.untouched.wat b/tests/compiler/mandelbrot.untouched.wat index d6c83e32b5..6a01c07979 100644 --- a/tests/compiler/mandelbrot.untouched.wat +++ b/tests/compiler/mandelbrot.untouched.wat @@ -263,14 +263,18 @@ local.set $9 i32.const 2056 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load local.set $8 i32.const 2056 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load offset=8 diff --git a/tests/compiler/std/libm.untouched.wat b/tests/compiler/std/libm.untouched.wat index b07b341edb..ddd3620d75 100644 --- a/tests/compiler/std/libm.untouched.wat +++ b/tests/compiler/std/libm.untouched.wat @@ -850,14 +850,18 @@ local.set $9 i32.const 2056 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load local.set $8 i32.const 2056 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load offset=8 diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index 939c757e00..949081e5e4 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -1547,14 +1547,18 @@ local.set $9 i32.const 2104 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load local.set $8 i32.const 2104 local.get $14 - i32.const 4 + i32.const 1 + i32.const 3 + i32.add i32.shl i32.add f64.load offset=8 From 7768e8402200420f70c502646e967e33c4942121 Mon Sep 17 00:00:00 2001 From: dcode Date: Sun, 26 Apr 2020 01:50:27 +0200 Subject: [PATCH 4/5] more, scrap old precompute mechanism --- src/builtins.ts | 271 +- src/compiler.ts | 30 +- src/module.ts | 44 +- tests/compiler/ReturnType.untouched.wat | 27 + tests/compiler/assert.untouched.wat | 20 + tests/compiler/builtins.untouched.wat | 592 +- tests/compiler/class.untouched.wat | 4 + tests/compiler/do.untouched.wat | 12 +- .../extends-baseaggregate.untouched.wat | 24 +- tests/compiler/features/simd.untouched.wat | 758 +- tests/compiler/for.untouched.wat | 12 +- .../implicit-getter-setter.untouched.wat | 12 +- tests/compiler/indexof-valueof.untouched.wat | 93 + tests/compiler/infer-array.untouched.wat | 48 + tests/compiler/infer-type.untouched.wat | 5 + tests/compiler/inlining.untouched.wat | 84 +- tests/compiler/instanceof-class.untouched.wat | 12 + tests/compiler/instanceof.untouched.wat | 102 + tests/compiler/issues/1095.untouched.wat | 12 +- tests/compiler/managed-cast.untouched.wat | 12 +- tests/compiler/memcpy.untouched.wat | 38 +- tests/compiler/memmove.untouched.wat | 38 +- tests/compiler/memorybase.untouched.wat | 17 + tests/compiler/number.untouched.wat | 66 +- tests/compiler/rc/global-init.untouched.wat | 8 +- tests/compiler/rc/local-init.untouched.wat | 12 +- .../rc/logical-and-mismatch.untouched.wat | 12 +- .../rc/logical-or-mismatch.untouched.wat | 12 +- tests/compiler/rc/optimize.untouched.wat | 12 +- tests/compiler/rc/rereturn.untouched.wat | 12 +- .../rc/ternary-mismatch.untouched.wat | 12 +- tests/compiler/resolve-binary.untouched.wat | 89 +- .../resolve-propertyaccess.untouched.wat | 14 +- tests/compiler/resolve-ternary.untouched.wat | 25 +- tests/compiler/retain-i32.untouched.wat | 4 + .../retain-release-sanity.untouched.wat | 24 +- tests/compiler/retain-return.untouched.wat | 12 +- tests/compiler/rt/ids.untouched.wat | 19 + tests/compiler/rt/instanceof.untouched.wat | 6 + tests/compiler/runtime-full.untouched.wat | 12 +- .../compiler/std/array-literal.untouched.wat | 28 +- tests/compiler/std/array.untouched.wat | 48 +- tests/compiler/std/arraybuffer.untouched.wat | 12 +- tests/compiler/std/dataview.untouched.wat | 12 +- tests/compiler/std/map.untouched.wat | 16 +- tests/compiler/std/math.untouched.wat | 6180 ++++++++++------- tests/compiler/std/mod.untouched.wat | 84 +- .../std/object-literal-omitted.untouched.wat | 12 +- .../object-literal-unmanaged.untouched.wat | 8 +- tests/compiler/std/object.untouched.wat | 32 +- tests/compiler/std/pointer.untouched.wat | 14 + tests/compiler/std/polyfills.untouched.wat | 24 +- tests/compiler/std/set.untouched.wat | 16 +- tests/compiler/std/static-array.untouched.wat | 32 +- tests/compiler/std/staticarray.untouched.wat | 24 +- .../std/string-casemapping.untouched.wat | 16 +- .../std/string-encoding.untouched.wat | 16 +- tests/compiler/std/string.untouched.wat | 99 +- tests/compiler/std/typedarray.untouched.wat | 248 +- tests/compiler/tablebase.untouched.wat | 14 + tests/compiler/typeof.untouched.wat | 36 + .../wasi/snapshot_preview1.untouched.wat | 170 +- tests/compiler/while.untouched.wat | 12 +- 63 files changed, 6379 insertions(+), 3392 deletions(-) diff --git a/src/builtins.ts b/src/builtins.ts index 1775960892..d603217a5d 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -73,7 +73,8 @@ import { RelooperBlockRef, SIMDLoadOp, getLocalGetIndex, - createType + createType, + ExpressionRunnerFlags } from "./module"; import { @@ -2559,17 +2560,16 @@ function builtin_memory_data(ctx: BuiltinContext): ExpressionRef { for (let i = 0; i < numElements; ++i) { let expression = expressions[i]; if (expression) { - let expr = module.precomputeExpression( - compiler.compileExpression(expression, elementType, - Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN - ) + let expr = compiler.compileExpression(expression, elementType, + Constraints.CONV_IMPLICIT | Constraints.WILL_RETAIN ); - if (getExpressionId(expr) == ExpressionId.Const) { - assert(getExpressionType(expr) == nativeElementType); - exprs[i] = expr; + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + expr = precomp; } else { isStatic = false; } + exprs[i] = expr; } else { exprs[i] = compiler.makeZero(elementType); } @@ -2594,8 +2594,9 @@ function builtin_memory_data(ctx: BuiltinContext): ExpressionRef { assert(compiler.writeStaticBuffer(buf, 0, elementType, exprs) == buf.byteLength); offset = compiler.addMemorySegment(buf, align).offset; } else { // data(size[, align]) - let arg0 = compiler.precomputeExpression(operands[0], Type.i32, Constraints.CONV_IMPLICIT); - if (getExpressionId(arg0) != ExpressionId.Const) { + let arg0 = compiler.compileExpression(operands[0], Type.i32, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(arg0, ExpressionRunnerFlags.PreserveSideeffects); + if (!precomp) { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, operands[0].range @@ -2603,7 +2604,7 @@ function builtin_memory_data(ctx: BuiltinContext): ExpressionRef { compiler.currentType = usizeType; return module.unreachable(); } - let size = getConstValueI32(arg0); + let size = getConstValueI32(precomp); if (size < 1) { compiler.error( DiagnosticCode._0_must_be_a_value_between_1_and_2_inclusive, @@ -2683,45 +2684,35 @@ function builtin_assert(ctx: BuiltinContext): ExpressionRef { var type = compiler.currentType; compiler.currentType = type.nonNullableType; - // if the assertion can be proven statically, omit it - if (getExpressionId(arg0 = module.precomputeExpression(arg0)) == ExpressionId.Const) { - switch (getExpressionType(arg0)) { + // omit if assertions are disabled + if (compiler.options.noAssert) { + return arg0; + } + + // omit if the assertion can be proven statically + var precomp = module.runExpression(arg0, ExpressionRunnerFlags.Default); + if (precomp) { + switch (getExpressionType(precomp)) { case NativeType.I32: { - if (getConstValueI32(arg0) != 0) { - if (contextualType == Type.void) { - compiler.currentType = Type.void; - return module.nop(); - } + if (getConstValueI32(precomp)) { return arg0; } break; } case NativeType.I64: { - if (getConstValueI64Low(arg0) != 0 || getConstValueI64High(arg0) != 0) { - if (contextualType == Type.void) { - compiler.currentType = Type.void; - return module.nop(); - } + if (getConstValueI64Low(precomp) | getConstValueI64High(precomp)) { return arg0; } break; } case NativeType.F32: { - if (getConstValueF32(arg0) != 0) { - if (contextualType == Type.void) { - compiler.currentType = Type.void; - return module.nop(); - } + if (getConstValueF32(precomp)) { return arg0; } break; } case NativeType.F64: { - if (getConstValueF64(arg0) != 0) { - if (contextualType == Type.void) { - compiler.currentType = Type.void; - return module.nop(); - } + if (getConstValueF64(precomp)) { return arg0; } break; @@ -2729,15 +2720,6 @@ function builtin_assert(ctx: BuiltinContext): ExpressionRef { } } - // return ifTrueish if assertions are disabled - if (compiler.options.noAssert) { - if (contextualType == Type.void) { // simplify if dropped anyway - compiler.currentType = Type.void; - return module.nop(); - } - return arg0; - } - // otherwise call abort if the assertion is false-ish var abort = compiler.makeAbort(operands.length == 2 ? operands[1] : null, ctx.reportNode); compiler.currentType = type.nonNullableType; @@ -3051,19 +3033,15 @@ function builtin_i8x16(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 16; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.i8, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.I32); - writeI8(getConstValueI32(expr), bytes, i); + let expr = compiler.compileExpression(operands[i], Type.i8, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + writeI8(getConstValueI32(precomp), bytes, i); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3086,19 +3064,15 @@ function builtin_i16x8(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 8; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.i16, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.I32); - writeI16(getConstValueI32(expr), bytes, i << 1); + let expr = compiler.compileExpression(operands[i], Type.i16, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + writeI16(getConstValueI32(precomp), bytes, i << 1); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3121,19 +3095,15 @@ function builtin_i32x4(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 4; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.i32, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.I32); - writeI32(getConstValueI32(expr), bytes, i << 2); + let expr = compiler.compileExpression(operands[i], Type.i32, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + writeI32(getConstValueI32(precomp), bytes, i << 2); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3156,21 +3126,17 @@ function builtin_i64x2(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 2; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.i64, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.I64); + let expr = compiler.compileExpression(operands[i], Type.i64, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { let off = i << 3; - writeI32(getConstValueI64Low(expr), bytes, off); - writeI32(getConstValueI64High(expr), bytes, off + 4); + writeI32(getConstValueI64Low(precomp), bytes, off); + writeI32(getConstValueI64High(precomp), bytes, off + 4); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3193,19 +3159,15 @@ function builtin_f32x4(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 4; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.f32, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.F32); - writeF32(getConstValueF32(expr), bytes, i << 2); + let expr = compiler.compileExpression(operands[i], Type.f32, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + writeF32(getConstValueF32(precomp), bytes, i << 2); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3228,19 +3190,15 @@ function builtin_f64x2(ctx: BuiltinContext): ExpressionRef { var operands = ctx.operands; var bytes = new Uint8Array(16); for (let i = 0; i < 2; ++i) { - let value = operands[i]; - if (value) { - let expr = compiler.precomputeExpression(value, Type.f64, Constraints.CONV_IMPLICIT); - if (getExpressionId(expr) != ExpressionId.Const) { - compiler.error( - DiagnosticCode.Expression_must_be_a_compile_time_constant, - value.range - ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(expr) == NativeType.F64); - writeF64(getConstValueF64(expr), bytes, i << 3); + let expr = compiler.compileExpression(operands[i], Type.f64, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + writeF64(getConstValueF64(precomp), bytes, i << 3); + } else { + compiler.error( + DiagnosticCode.Expression_must_be_a_compile_time_constant, + operands[i].range + ); } } compiler.currentType = Type.v128; @@ -3309,12 +3267,12 @@ function builtin_v128_extract_lane(ctx: BuiltinContext): ExpressionRef { var typeArguments = ctx.typeArguments!; var type = typeArguments[0]; var arg0 = compiler.compileExpression(operands[0], Type.v128, Constraints.CONV_IMPLICIT); - var arg1 = compiler.precomputeExpression(operands[1], Type.u8, Constraints.CONV_IMPLICIT); + var arg1 = compiler.compileExpression(operands[1], Type.u8, Constraints.CONV_IMPLICIT); compiler.currentType = type; var idx = 0; - if (getExpressionId(arg1) == ExpressionId.Const) { - assert(getExpressionType(arg1) == NativeType.I32); - idx = getConstValueI32(arg1); + var precomp = module.runExpression(arg1, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + idx = getConstValueI32(precomp); } else { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, @@ -3376,13 +3334,13 @@ function builtin_v128_replace_lane(ctx: BuiltinContext): ExpressionRef { var typeArguments = ctx.typeArguments!; var type = typeArguments[0]; var arg0 = compiler.compileExpression(operands[0], Type.v128, Constraints.CONV_IMPLICIT); - var arg1 = compiler.precomputeExpression(operands[1], Type.u8, Constraints.CONV_IMPLICIT); + var arg1 = compiler.compileExpression(operands[1], Type.u8, Constraints.CONV_IMPLICIT); var arg2 = compiler.compileExpression(operands[2], type, Constraints.CONV_IMPLICIT); compiler.currentType = Type.v128; var idx = 0; - if (getExpressionId(arg1) == ExpressionId.Const) { - assert(getExpressionType(arg1) == NativeType.I32); - idx = getConstValueI32(arg1); + var precomp = module.runExpression(arg1, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + idx = getConstValueI32(precomp); } else { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, @@ -3471,24 +3429,23 @@ function builtin_v128_shuffle(ctx: BuiltinContext): ExpressionRef { let maxIdx = (laneCount << 1) - 1; for (let i = 0; i < laneCount; ++i) { let operand = operands[2 + i]; - let argN = compiler.precomputeExpression(operand, Type.u8, Constraints.CONV_IMPLICIT); - if (getExpressionId(argN) != ExpressionId.Const) { + let argN = compiler.compileExpression(operand, Type.u8, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(argN, ExpressionRunnerFlags.PreserveSideeffects); + let idx = 0; + if (precomp) { + idx = getConstValueI32(precomp); + if (idx < 0 || idx > maxIdx) { + compiler.error( + DiagnosticCode._0_must_be_a_value_between_1_and_2_inclusive, + operand.range, "Lane index", "0", maxIdx.toString() + ); + idx = 0; + } + } else { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, operand.range ); - compiler.currentType = Type.v128; - return module.unreachable(); - } - assert(getExpressionType(argN) == NativeType.I32); - let idx = getConstValueI32(argN); - if (idx < 0 || idx > maxIdx) { - compiler.error( - DiagnosticCode._0_must_be_a_value_between_1_and_2_inclusive, - operand.range, "Lane index", "0", maxIdx.toString() - ); - compiler.currentType = Type.v128; - return module.unreachable(); } switch (laneWidth) { case 1: { @@ -8213,16 +8170,15 @@ function evaluateConstantType(ctx: BuiltinContext): Type | null { /** Evaluates a compile-time constant immediate offset argument.*/ function evaluateImmediateOffset(expression: Expression, compiler: Compiler): i32 { - var expr: ExpressionRef; + var module = compiler.module; var value: i32; if (compiler.options.isWasm64) { - expr = compiler.precomputeExpression(expression, Type.usize64, Constraints.CONV_IMPLICIT); - if ( - getExpressionId(expr) != ExpressionId.Const || - getExpressionType(expr) != NativeType.I64 || - getConstValueI64High(expr) != 0 || - (value = getConstValueI64Low(expr)) < 0 - ) { + let expr = compiler.compileExpression(expression, Type.usize64, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + assert(getConstValueI64High(precomp) == 0); // TODO + value = getConstValueI64Low(precomp); + } else { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, expression.range @@ -8230,12 +8186,11 @@ function evaluateImmediateOffset(expression: Expression, compiler: Compiler): i3 value = -1; } } else { - expr = compiler.precomputeExpression(expression, Type.usize32, Constraints.CONV_IMPLICIT); - if ( - getExpressionId(expr) != ExpressionId.Const || - getExpressionType(expr) != NativeType.I32 || - (value = getConstValueI32(expr)) < 0 - ) { + let expr = compiler.compileExpression(expression, Type.usize32, Constraints.CONV_IMPLICIT); + let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); + if (precomp) { + value = getConstValueI32(precomp); + } else { compiler.error( DiagnosticCode.Expression_must_be_a_compile_time_constant, expression.range diff --git a/src/compiler.ts b/src/compiler.ts index e3a9bb627d..c764c8d967 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -1059,7 +1059,6 @@ export class Compiler extends DiagnosticEmitter { if (getExpressionId(initExpr) != ExpressionId.Const) { let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); if (precomp) { - assert(getExpressionId(precomp) == ExpressionId.Const); initExpr = precomp; } else { initializeInStart = true; @@ -1191,7 +1190,6 @@ export class Compiler extends DiagnosticEmitter { if (getExpressionId(initExpr) != ExpressionId.Const) { let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); if (precomp) { - assert(getExpressionId(precomp) == ExpressionId.Const); initExpr = precomp; } else { if (element.is(CommonFlags.CONST)) { @@ -1223,7 +1221,6 @@ export class Compiler extends DiagnosticEmitter { ); let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); if (precomp) { - assert(getExpressionId(precomp) == ExpressionId.Const); initExpr = precomp; } else { if (element.is(CommonFlags.CONST)) { @@ -2912,7 +2909,6 @@ export class Compiler extends DiagnosticEmitter { if (initExpr) { let precomp = module.runExpression(initExpr, ExpressionRunnerFlags.PreserveSideeffects); if (precomp) { - assert(getExpressionId(precomp) == ExpressionId.Const); initExpr = precomp; let local = new Local(name, -1, type, flow.parentFunction); switch (getExpressionType(initExpr)) { @@ -3405,17 +3401,6 @@ export class Compiler extends DiagnosticEmitter { return expr; } - /** Compiles and precomputes an expression, possibly yielding a costant value. */ - precomputeExpression( - expression: Expression, - contextualType: Type, - constraints: Constraints = Constraints.NONE - ): ExpressionRef { - return this.module.precomputeExpression( - this.compileExpression(expression, contextualType, constraints) - ); - } - /** Compiles an expression that is about to be returned, taking special care of retaining and setting flow states. */ private compileReturnedExpression( /** Expression to compile. */ @@ -8321,7 +8306,6 @@ export class Compiler extends DiagnosticEmitter { ); let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); if (precomp) { - assert(getExpressionId(precomp) == ExpressionId.Const); expr = precomp; } else { isStatic = false; @@ -8491,7 +8475,6 @@ export class Compiler extends DiagnosticEmitter { ); let precomp = module.runExpression(expr, ExpressionRunnerFlags.PreserveSideeffects); if (precomp) { - assert(getExpressionId(precomp) == ExpressionId.Const); expr = precomp; } else { isStatic = false; @@ -9819,21 +9802,23 @@ export class Compiler extends DiagnosticEmitter { let element = this.resolver.lookupExpression(operand, this.currentFlow, Type.auto, ReportMode.SWALLOW); if (!element) { switch (operand.kind) { + case NodeKind.IDENTIFIER: break; // ignore error: typeof doesntExist -> undefined case NodeKind.PROPERTYACCESS: case NodeKind.ELEMENTACCESS: { operand = operand.kind == NodeKind.PROPERTYACCESS ? (operand).expression : (operand).expression; let targetType = this.resolver.resolveExpression(operand, this.currentFlow, Type.auto, ReportMode.REPORT); - if (!targetType) { + if (!targetType) { // access on non-object this.currentType = stringInstance.type; return this.module.unreachable(); } - expr = this.compileExpression(operand, Type.auto); // might have side-effects - break; + // fall-through + } + default: { + expr = this.compileExpression(operand, Type.auto); // may trigger an error + expr = this.convertExpression(expr, this.currentType, Type.void, true, false, operand); } - case NodeKind.IDENTIFIER: break; // ignore error - default: expr = this.compileExpression(operand, Type.auto); // trigger error } typeString = "undefined"; } else { @@ -10021,7 +10006,6 @@ export class Compiler extends DiagnosticEmitter { var module = this.module; var evaled = module.runExpression(expr, ExpressionRunnerFlags.Default); if (evaled) { - assert(getExpressionId(evaled) == ExpressionId.Const); return getConstValueI32(evaled) ? ConditionKind.TRUE : ConditionKind.FALSE; diff --git a/src/module.ts b/src/module.ts index 2c18cf8a95..aa63cb31e6 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1621,41 +1621,6 @@ export class Module { } } - private cachedPrecomputeNames: usize = 0; - - precomputeExpression(expr: ExpressionRef): ExpressionRef { - // remember the previous optimize levels and set to max instead, to be sure - var previousOptimizeLevel = binaryen._BinaryenGetOptimizeLevel(); - var previousShrinkLevel = binaryen._BinaryenGetShrinkLevel(); - var previousDebugInfo = binaryen._BinaryenGetDebugInfo(); - binaryen._BinaryenSetOptimizeLevel(4); - binaryen._BinaryenSetShrinkLevel(0); - binaryen._BinaryenSetDebugInfo(false); - - // wrap the expression in a temp. function and run the precompute pass on it - var type = binaryen._BinaryenExpressionGetType(expr); - var func = this.addTemporaryFunction(type, null, expr); - var names = this.cachedPrecomputeNames; - if (!names) { - this.cachedPrecomputeNames = names = allocPtrArray([ - this.allocStringCached("vacuum"), - this.allocStringCached("precompute") - ]); - } - binaryen._BinaryenFunctionRunPasses(func, this.ref, names, 2); - expr = binaryen._BinaryenFunctionGetBody(func); - if (binaryen._BinaryenExpressionGetId(expr) == ExpressionId.Return) { - expr = binaryen._BinaryenReturnGetValue(expr); - } - this.removeTemporaryFunction(); - - // reset optimize levels to previous - binaryen._BinaryenSetOptimizeLevel(previousOptimizeLevel); - binaryen._BinaryenSetShrinkLevel(previousShrinkLevel); - binaryen._BinaryenSetDebugInfo(previousDebugInfo); - return expr; - } - validate(): bool { return binaryen._BinaryenModuleValidate(this.ref) == 1; } @@ -1711,8 +1676,6 @@ export class Module { } this.cachedStrings = new Map(); binaryen._free(this.lit); - binaryen._free(this.cachedPrecomputeNames); - this.cachedPrecomputeNames = 0; binaryen._BinaryenModuleDispose(this.ref); this.ref = 0; } @@ -1817,7 +1780,12 @@ export class Module { runExpression(expr: ExpressionRef, flags: ExpressionRunnerFlags, maxDepth: i32 = 50, maxLoopIterations: i32 = 1): ExpressionRef { var runner = binaryen._ExpressionRunnerCreate(this.ref, flags, maxDepth, maxLoopIterations); - return binaryen._ExpressionRunnerRunAndDispose(runner, expr); + var precomp = binaryen._ExpressionRunnerRunAndDispose(runner, expr); + if (precomp) { + assert(getExpressionId(precomp) == ExpressionId.Const); + assert(getExpressionType(precomp) == getExpressionType(expr)); + } + return precomp; } // source map generation diff --git a/tests/compiler/ReturnType.untouched.wat b/tests/compiler/ReturnType.untouched.wat index bffe105a3d..d37e1f0a8a 100644 --- a/tests/compiler/ReturnType.untouched.wat +++ b/tests/compiler/ReturnType.untouched.wat @@ -1,5 +1,32 @@ (module + (type $none_=>_none (func)) (memory $0 0) (table $0 1 funcref) (export "memory" (memory $0)) + (start $~start) + (func $start:ReturnType + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 1 + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 1 + drop + i32.const 16 + i32.const 16 + i32.eq + drop + ) + (func $~start + call $start:ReturnType + ) ) diff --git a/tests/compiler/assert.untouched.wat b/tests/compiler/assert.untouched.wat index 5011ccb714..e58de52514 100644 --- a/tests/compiler/assert.untouched.wat +++ b/tests/compiler/assert.untouched.wat @@ -5,6 +5,26 @@ (export "memory" (memory $0)) (start $~start) (func $start:assert + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + i32.const 0 + i32.gt_u + drop + f64.const 0.5 + drop + f64.const 0.5 + f64.const 0.4 + f64.gt + drop + i64.const 4294967296 + drop + i64.const 4294967296 + i64.const 1 + i64.gt_s + drop i32.const 1 i32.eqz drop diff --git a/tests/compiler/builtins.untouched.wat b/tests/compiler/builtins.untouched.wat index 881e5cc654..08f3bf7d0a 100644 --- a/tests/compiler/builtins.untouched.wat +++ b/tests/compiler/builtins.untouched.wat @@ -326,6 +326,98 @@ (local $7 i32) (local $8 i32) i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 i32.clz drop i32.const 1 @@ -599,30 +691,14 @@ f32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 104 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const nan:0x400000 local.tee $4 local.get $4 f32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 105 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const 1.25 local.tee $4 local.get $4 @@ -631,15 +707,7 @@ f32.eq i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 106 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const inf local.tee $4 local.get $4 @@ -648,16 +716,9 @@ f32.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 107 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f32.const -inf + drop + f32.const inf + f32.neg local.tee $4 local.get $4 f32.sub @@ -665,15 +726,7 @@ f32.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 108 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const nan:0x400000 local.tee $4 local.get $4 @@ -682,15 +735,7 @@ f32.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 109 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const nan:0x400000 global.set $builtins/f f32.const inf @@ -781,30 +826,14 @@ f64.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 140 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const nan:0x8000000000000 local.tee $5 local.get $5 f64.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 141 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const 1.25 local.tee $5 local.get $5 @@ -813,15 +842,7 @@ f64.eq i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 142 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const inf local.tee $5 local.get $5 @@ -830,16 +851,9 @@ f64.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 143 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const -inf + drop + f64.const inf + f64.neg local.tee $5 local.get $5 f64.sub @@ -847,15 +861,7 @@ f64.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 144 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const nan:0x8000000000000 local.tee $5 local.get $5 @@ -864,15 +870,7 @@ f64.eq i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 145 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const nan:0x8000000000000 global.set $builtins/F f64.const inf @@ -1171,36 +1169,112 @@ if unreachable end + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop i32.const 4 drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 4 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 3 + i32.const 3 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 4 i32.const 4 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + f64.const nan:0x8000000000000 + f64.const nan:0x8000000000000 + f64.ne drop f32.const nan:0x400000 local.tee $4 local.get $4 f32.ne - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 296 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const nan:0x8000000000000 local.tee $5 local.get $5 f64.ne - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 297 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const nan:0x400000 local.tee $4 local.get $4 @@ -1208,15 +1282,7 @@ f32.const 0 f32.eq i32.eqz - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 298 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const inf local.tee $4 local.get $4 @@ -1224,15 +1290,7 @@ f32.const 0 f32.eq i32.eqz - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 299 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const nan:0x8000000000000 local.tee $5 local.get $5 @@ -1240,15 +1298,7 @@ f64.const 0 f64.eq i32.eqz - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 300 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const inf local.tee $5 local.get $5 @@ -1256,45 +1306,157 @@ f64.const 0 f64.eq i32.eqz - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 301 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const 0 local.tee $4 local.get $4 f32.sub f32.const 0 f32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 302 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const 0 local.tee $5 local.get $5 f64.sub f64.const 0 f64.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 303 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop + global.get $~lib/builtins/i8.MIN_VALUE + i32.const 128 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eq + drop + global.get $~lib/builtins/i8.MAX_VALUE + i32.const 127 + i32.eq + drop + global.get $~lib/builtins/i16.MIN_VALUE + i32.const 32768 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.eq + drop + global.get $~lib/builtins/i16.MAX_VALUE + i32.const 32767 + i32.eq + drop + global.get $~lib/builtins/i32.MIN_VALUE + i32.const -2147483648 + i32.eq + drop + global.get $~lib/builtins/i32.MAX_VALUE + i32.const 2147483647 + i32.eq + drop + global.get $~lib/builtins/i64.MIN_VALUE + i64.const -9223372036854775808 + i64.eq + drop + global.get $~lib/builtins/i64.MAX_VALUE + i64.const 9223372036854775807 + i64.eq + drop + global.get $~lib/builtins/u8.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/u8.MAX_VALUE + i32.const 255 + i32.eq + drop + global.get $~lib/builtins/u16.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/u16.MAX_VALUE + i32.const 65535 + i32.eq + drop + global.get $~lib/builtins/u32.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/u32.MAX_VALUE + i32.const -1 + i32.eq + drop + global.get $~lib/builtins/u64.MIN_VALUE + i64.const 0 + i64.eq + drop + global.get $~lib/builtins/u64.MAX_VALUE + i64.const -1 + i64.eq + drop + global.get $~lib/builtins/bool.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/bool.MIN_VALUE + i32.const 0 + i32.eq + drop + global.get $~lib/builtins/bool.MAX_VALUE + i32.const 1 + i32.eq + drop + global.get $~lib/builtins/bool.MAX_VALUE + i32.const 1 + i32.eq + drop + global.get $~lib/builtins/f32.MIN_NORMAL_VALUE + f32.const 1.1754943508222875e-38 + f32.eq + drop + global.get $~lib/builtins/f32.MIN_VALUE + f32.const 1.401298464324817e-45 + f32.eq + drop + global.get $~lib/builtins/f32.MAX_VALUE + f32.const 3402823466385288598117041e14 + f32.eq + drop + global.get $~lib/builtins/f32.MIN_SAFE_INTEGER + f32.const -16777215 + f32.eq + drop + global.get $~lib/builtins/f32.MAX_SAFE_INTEGER + f32.const 16777215 + f32.eq + drop + global.get $~lib/builtins/f32.EPSILON + f32.const 1.1920928955078125e-07 + f32.eq + drop + global.get $~lib/builtins/f64.MIN_NORMAL_VALUE + f64.const 2.2250738585072014e-308 + f64.eq + drop + global.get $~lib/builtins/f64.MIN_VALUE + f64.const 5e-324 + f64.eq + drop + global.get $~lib/builtins/f64.MAX_VALUE + f64.const 1797693134862315708145274e284 + f64.eq + drop + global.get $~lib/builtins/f64.MIN_SAFE_INTEGER + f64.const -9007199254740991 + f64.eq + drop + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER + f64.const 9007199254740991 + f64.eq + drop + global.get $~lib/builtins/f64.EPSILON + f64.const 2.220446049250313e-16 + f64.eq + drop f32.const 1 f32.abs drop @@ -1872,6 +2034,72 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 3 + i32.const 3 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop ) (func $builtins/test nop diff --git a/tests/compiler/class.untouched.wat b/tests/compiler/class.untouched.wat index a919c7447b..32445315c1 100644 --- a/tests/compiler/class.untouched.wat +++ b/tests/compiler/class.untouched.wat @@ -38,6 +38,10 @@ f32.add ) (func $start:class + i32.const 4 + i32.const 4 + i32.eq + drop global.get $class/Animal.ONE drop i32.const 1 diff --git a/tests/compiler/do.untouched.wat b/tests/compiler/do.untouched.wat index e85e339352..418a287303 100644 --- a/tests/compiler/do.untouched.wat +++ b/tests/compiler/do.untouched.wat @@ -1823,7 +1823,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1872,12 +1874,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/extends-baseaggregate.untouched.wat b/tests/compiler/extends-baseaggregate.untouched.wat index c7faf8da37..fd84213021 100644 --- a/tests/compiler/extends-baseaggregate.untouched.wat +++ b/tests/compiler/extends-baseaggregate.untouched.wat @@ -1420,7 +1420,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1467,12 +1469,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1585,7 +1591,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -3906,12 +3914,16 @@ i32.load offset=4 local.set $3 local.get $3 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $3 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/features/simd.untouched.wat b/tests/compiler/features/simd.untouched.wat index 92c19496d4..acc103cd20 100644 --- a/tests/compiler/features/simd.untouched.wat +++ b/tests/compiler/features/simd.untouched.wat @@ -182,6 +182,65 @@ ) (func $features/simd/test_v128 (local $0 i32) + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x04030202 0x08070605 0x0c0b0a09 0x100f0e0d + i8x16.ne + i8x16.any_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101 + v128.and + v128.const i32x4 0x00010001 0x00010001 0x00010001 0x00010001 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101 + v128.or + v128.const i32x4 0x05030301 0x09070705 0x0d0b0b09 0x110f0f0d + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x01010101 0x01010101 0x01010101 0x01010101 + v128.xor + v128.const i32x4 0x05020300 0x09060704 0x0d0a0b08 0x110e0f0c + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.not + v128.const i32x4 0xfbfcfdfe 0xf7f8f9fa 0xf3f4f5f6 0xeff0f1f2 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32x4 0x0d0e0f10 0x090a0b0c 0x05060708 0x01020304 + v128.const i32x4 0xff00ff00 0xff00ff00 0xff00ff00 0xff00ff00 + v128.bitselect + v128.const i32x4 0x040e0210 0x080a060c 0x0c060a08 0x10020e04 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop i32.const 64 i32.const 0 call $~lib/rt/stub/__alloc @@ -289,6 +348,51 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.min_s + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.min_u + v128.const i32x4 0x007f0000 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.max_s + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x007f7f00 0x00000000 0x00000000 0x00000000 + v128.const i32x4 0x00800080 0x00000000 0x00000000 0x00000000 + i8x16.max_u + v128.const i32x4 0x00807f80 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x04040201 0x08070605 0x0c0b0a09 0xff800e0d + v128.const i32x4 0x04020401 0x08070605 0x0c0b0a09 0xff800e0d + i8x16.avgr_u + v128.const i32x4 0x04030301 0x08070605 0x0c0b0a09 0xff800e0d + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop local.get $0 i8x16.neg v128.const i32x4 0xfcfdfeff 0xf8f9fafb 0xf4f5f6f7 0x81f1f2f3 @@ -388,6 +492,98 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x7f7f7f7e 0x7f7f7f7f 0x7f7f7f7f 0x7f7f7f7f + i32.const 2 + i8x16.splat + i8x16.add_saturate_s + i32.const 127 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0xfffffffe 0xffffffff 0xffffffff 0xffffffff + i32.const 2 + i8x16.splat + i8x16.add_saturate_u + i32.const -1 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x80808081 0x80808080 0x80808080 0x80808080 + i32.const 2 + i8x16.splat + i8x16.sub_saturate_s + i32.const -128 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i32.const 2 + i8x16.splat + i8x16.sub_saturate_u + i32.const 0 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const 1 + i8x16.splat + i32.const 1 + i8x16.shl + i32.const 2 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -2 + i8x16.splat + i32.const 1 + i8x16.shr_s + i32.const -1 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 1 + i8x16.shr_u + i32.const 127 + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i8x16.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 1 + i8x16.splat + i8x16.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop i32.const 0 i8x16.splat i32.const 1 @@ -573,6 +769,30 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + i8x16.narrow_i16x8_s + global.get $~lib/builtins/i8.MAX_VALUE + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + i8x16.narrow_i16x8_u + global.get $~lib/builtins/u8.MAX_VALUE + i8x16.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop ) (func $features/simd/test_i16x8 (local $0 v128) @@ -670,6 +890,51 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.min_s + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.min_u + v128.const i32x4 0x00000000 0x00007fff 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.max_s + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x7fff0000 0x00007fff 0x00000000 0x00000000 + v128.const i32x4 0x00008000 0x00008000 0x00000000 0x00000000 + i16x8.max_u + v128.const i32x4 0x7fff8000 0x00008000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00020001 0x00040004 0x00060005 0xffff8000 + v128.const i32x4 0x00040001 0x00040002 0x00060005 0xffff8000 + i16x8.avgr_u + v128.const i32x4 0x00030001 0x00040003 0x00060005 0xffff8000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop local.get $0 i16x8.neg v128.const i32x4 0xfffeffff 0xfffcfffd 0xfffafffb 0x8001fff9 @@ -769,6 +1034,98 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x7fff7ffe 0x7fff7fff 0x7fff7fff 0x7fff7fff + i32.const 2 + i16x8.splat + i16x8.add_saturate_s + i32.const 32767 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0xfffffffe 0xffffffff 0xffffffff 0xffffffff + i32.const 2 + i16x8.splat + i16x8.add_saturate_u + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x80008001 0x80008000 0x80008000 0x80008000 + i32.const 2 + i16x8.splat + i16x8.sub_saturate_s + i32.const -32768 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i32.const 2 + i16x8.splat + i16x8.sub_saturate_u + i32.const 0 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const 1 + i16x8.splat + i32.const 1 + i16x8.shl + i32.const 2 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -2 + i16x8.splat + i32.const 1 + i16x8.shr_s + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 1 + i16x8.shr_u + i32.const 32767 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i16x8.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 1 + i16x8.splat + i16x8.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop i32.const 0 i16x8.splat i32.const 1 @@ -928,32 +1285,104 @@ i8x16.all_true i32.const 0 i32.ne - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 281 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - i16x8.ge_u - local.get $6 + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 281 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $4 + i16x8.ge_u + local.get $6 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + i16x8.narrow_i32x4_s + global.get $~lib/builtins/i16.MAX_VALUE + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + global.get $~lib/builtins/i32.MAX_VALUE + i32x4.splat + i16x8.narrow_i32x4_u + global.get $~lib/builtins/u16.MAX_VALUE + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 8 + i16x8.widen_low_i8x16_s + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 8 + i16x8.widen_low_i8x16_u + i32.const 255 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 0 + i16x8.widen_high_i8x16_s + i32.const -1 + i16x8.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i8x16.splat + i32.const 0 + i8x16.replace_lane 0 + i16x8.widen_high_i8x16_u + i32.const 255 + i16x8.splat i8x16.eq i8x16.all_true i32.const 0 i32.ne - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 282 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop ) (func $features/simd/test_i32x4 (local $0 v128) @@ -1051,6 +1480,51 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.min_s + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.min_u + v128.const i32x4 0x00000000 0x00000000 0x7fffffff 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.max_s + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000000 0x7fffffff 0x7fffffff 0x00000000 + v128.const i32x4 0x80000000 0x00000000 0x80000000 0x00000000 + i32x4.max_u + v128.const i32x4 0x80000000 0x7fffffff 0x80000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00020001 0x00040003 0x0003ffff 0x00000000 + v128.const i32x4 0x00060005 0x00080007 0xffff0002 0x00000000 + i32x4.dot_i16x8_s + v128.const i32x4 0x00000011 0x00000035 0xfffffffb 0x00000000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop local.get $0 i32x4.neg v128.const i32x4 0xffffffff 0xfffffffe 0xfffffffd 0x80000001 @@ -1127,6 +1601,54 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32x4.splat + i32.const 1 + i32x4.shl + i32.const 2 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -2 + i32x4.splat + i32.const 1 + i32x4.shr_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i32x4.splat + i32.const 1 + i32x4.shr_u + i32.const 2147483647 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i32x4.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i32.const 1 + i32x4.splat + i32x4.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop i32.const 0 i32x4.splat i32.const 1 @@ -1312,6 +1834,74 @@ call $~lib/builtins/abort unreachable end + f32.const -1.5 + f32x4.splat + i32x4.trunc_sat_f32x4_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + f32.const -1.5 + f32x4.splat + i32x4.trunc_sat_f32x4_u + i32.const 0 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 4 + i32x4.widen_low_i16x8_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 4 + i32x4.widen_low_i16x8_u + i32.const 65535 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 0 + i32x4.widen_high_i16x8_s + i32.const -1 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i16x8.splat + i32.const 0 + i16x8.replace_lane 0 + i32x4.widen_high_i16x8_u + i32.const 65535 + i32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop ) (func $features/simd/test_i64x2 (local $0 v128) @@ -1464,6 +2054,74 @@ call $~lib/builtins/abort unreachable end + i64.const 1 + i64x2.splat + i32.const 1 + i64x2.shl + i64.const 2 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i64.const -2 + i64x2.splat + i32.const 1 + i64x2.shr_s + i64.const -1 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i64.const -1 + i64x2.splat + i32.const 1 + i64x2.shr_u + i64.const 9223372036854775807 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + v128.const i32x4 0x00000001 0x00000000 0x00000000 0x00000000 + i64x2.any_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + i64.const 1 + i64x2.splat + i64x2.all_true + i32.const 0 + i32.ne + i32.const 1 + i32.eq + drop + f64.const -1.5 + f64x2.splat + i64x2.trunc_sat_f64x2_s + i64.const -1 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + f64.const -1.5 + f64x2.splat + i64x2.trunc_sat_f64x2_u + i64.const 0 + i64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop ) (func $features/simd/test_f32x4 (local $0 v128) @@ -1842,6 +2500,34 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x40800000 0x41100000 0x41800000 0x41c80000 + f32x4.sqrt + v128.const i32x4 0x40000000 0x40400000 0x40800000 0x40a00000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i32x4.splat + f32x4.convert_i32x4_s + f32.const -1 + f32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i32.const -1 + i32x4.splat + f32x4.convert_i32x4_u + f32.const 4294967296 + f32x4.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop ) (func $features/simd/test_f64x2 (local $0 v128) @@ -2220,6 +2906,34 @@ call $~lib/builtins/abort unreachable end + v128.const i32x4 0x00000000 0x40100000 0x00000000 0x40220000 + f64x2.sqrt + v128.const i32x4 0x00000000 0x40000000 0x00000000 0x40080000 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i64.const -1 + i64x2.splat + f64x2.convert_i64x2_s + f64.const -1 + f64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop + i64.const -1 + i64x2.splat + f64x2.convert_i64x2_u + f64.const 18446744073709551615 + f64x2.splat + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + drop ) (func $features/simd/test_v8x16 (local $0 v128) diff --git a/tests/compiler/for.untouched.wat b/tests/compiler/for.untouched.wat index d04be7bbfe..78c447d516 100644 --- a/tests/compiler/for.untouched.wat +++ b/tests/compiler/for.untouched.wat @@ -1836,7 +1836,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1885,12 +1887,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/implicit-getter-setter.untouched.wat b/tests/compiler/implicit-getter-setter.untouched.wat index d3cf7d7bbf..0bf24f8ead 100644 --- a/tests/compiler/implicit-getter-setter.untouched.wat +++ b/tests/compiler/implicit-getter-setter.untouched.wat @@ -1424,7 +1424,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1473,12 +1475,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/indexof-valueof.untouched.wat b/tests/compiler/indexof-valueof.untouched.wat index bffe105a3d..ec0868b667 100644 --- a/tests/compiler/indexof-valueof.untouched.wat +++ b/tests/compiler/indexof-valueof.untouched.wat @@ -1,5 +1,98 @@ (module + (type $none_=>_none (func)) (memory $0 0) (table $0 1 funcref) (export "memory" (memory $0)) + (start $~start) + (func $start:indexof-valueof + i32.const 1 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + i32.const 1 + drop + ) + (func $~start + call $start:indexof-valueof + ) ) diff --git a/tests/compiler/infer-array.untouched.wat b/tests/compiler/infer-array.untouched.wat index d22633e775..3858de811f 100644 --- a/tests/compiler/infer-array.untouched.wat +++ b/tests/compiler/infer-array.untouched.wat @@ -1760,6 +1760,10 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $1 + i32.const 1 + drop + i32.const 1 + drop local.get $1 call $~lib/rt/stub/__release i32.const 3 @@ -1769,6 +1773,8 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $0 + i32.const 1 + drop local.get $0 call $~lib/rt/stub/__release i32.const 2 @@ -1778,6 +1784,11 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $1 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $1 i32.const 1 call $~lib/array/Array#__get @@ -1801,6 +1812,8 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $0 + i32.const 1 + drop local.get $0 call $~lib/rt/stub/__release i32.const 3 @@ -1810,6 +1823,8 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $1 + i32.const 1 + drop local.get $1 i32.const 1 call $~lib/array/Array#__get @@ -1842,6 +1857,8 @@ i32.store offset=4 local.get $3 local.set $4 + i32.const 1 + drop local.get $1 call $~lib/rt/stub/__release local.get $0 @@ -1876,6 +1893,8 @@ i32.store offset=4 local.get $0 local.set $1 + i32.const 1 + drop local.get $3 call $~lib/rt/stub/__release local.get $4 @@ -1907,6 +1926,8 @@ i32.store offset=4 local.get $1 local.set $4 + i32.const 1 + drop local.get $0 call $~lib/rt/stub/__release local.get $4 @@ -1920,6 +1941,8 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $4 + i32.const 1 + drop local.get $4 call $~lib/rt/stub/__release local.get $1 @@ -1931,6 +1954,11 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop i32.const 2 i32.const 2 i32.const 10 @@ -1938,6 +1966,11 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $0 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $4 call $~lib/rt/stub/__release local.get $0 @@ -1949,6 +1982,11 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop i32.const 2 i32.const 2 i32.const 3 @@ -1956,6 +1994,11 @@ call $~lib/rt/__allocArray call $~lib/rt/stub/__retain local.set $1 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $4 call $~lib/rt/stub/__release local.get $1 @@ -1988,6 +2031,11 @@ i32.store offset=4 local.get $1 local.set $4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop local.get $4 call $~lib/rt/stub/__release local.get $1 diff --git a/tests/compiler/infer-type.untouched.wat b/tests/compiler/infer-type.untouched.wat index 15d6796415..b9097d3c32 100644 --- a/tests/compiler/infer-type.untouched.wat +++ b/tests/compiler/infer-type.untouched.wat @@ -94,6 +94,11 @@ br $for-loop|0 end end + i32.const 0 + i32.eqz + drop + i32.const 1 + drop ) (func $~start call $start:infer-type diff --git a/tests/compiler/inlining.untouched.wat b/tests/compiler/inlining.untouched.wat index 12779850f9..be17ca72c0 100644 --- a/tests/compiler/inlining.untouched.wat +++ b/tests/compiler/inlining.untouched.wat @@ -71,15 +71,7 @@ end i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop block $inlining/func_ii|inlined.1 (result i32) i32.const 41 local.set $2 @@ -101,15 +93,7 @@ end i32.const 2 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 61 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop block $inlining/func_ii|inlined.2 (result i32) i32.const 43 local.set $2 @@ -131,47 +115,25 @@ end i32.const 3 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 62 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 0 local.set $2 local.get $2 i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 1 local.set $2 local.get $2 i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 2 local.set $2 local.get $2 local.set $3 + i32.const 1 + drop local.get $3 local.set $5 local.get $5 @@ -183,19 +145,13 @@ local.get $4 i32.const 3 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 65 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 3 local.set $5 local.get $5 local.set $4 + i32.const 1 + drop local.get $4 local.set $2 local.get $2 @@ -207,15 +163,7 @@ local.get $3 i32.const 4 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 0 local.set $2 i32.const 1 @@ -243,15 +191,7 @@ i32.add i32.const 44 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop i32.const 123 call $~lib/rt/stub/__retain local.set $7 diff --git a/tests/compiler/instanceof-class.untouched.wat b/tests/compiler/instanceof-class.untouched.wat index b349ca385b..67f434a05b 100644 --- a/tests/compiler/instanceof-class.untouched.wat +++ b/tests/compiler/instanceof-class.untouched.wat @@ -197,9 +197,18 @@ i32.const 0 call $instanceof-class/Child#constructor global.set $instanceof-class/a + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop i32.const 0 call $instanceof-class/Child#constructor global.set $instanceof-class/b + i32.const 1 + drop global.get $instanceof-class/b call $instanceof-class/Child~instanceof i32.eqz @@ -211,6 +220,9 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + i32.eqz + drop ) (func $~start call $start:instanceof-class diff --git a/tests/compiler/instanceof.untouched.wat b/tests/compiler/instanceof.untouched.wat index bc5d4e0103..50638d990a 100644 --- a/tests/compiler/instanceof.untouched.wat +++ b/tests/compiler/instanceof.untouched.wat @@ -50,6 +50,104 @@ (func $start:instanceof (local $0 i32) (local $1 i32) + i32.const 1 + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 0 + i32.eqz + drop + i32.const 1 + drop i32.const 0 call $instanceof/isI32 i32.eqz @@ -111,6 +209,8 @@ unreachable end i32.const 1 + drop + i32.const 1 local.tee $0 global.get $instanceof/an local.tee $1 @@ -136,6 +236,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop ) (func $~start call $start:instanceof diff --git a/tests/compiler/issues/1095.untouched.wat b/tests/compiler/issues/1095.untouched.wat index cbf398b847..ababb570f7 100644 --- a/tests/compiler/issues/1095.untouched.wat +++ b/tests/compiler/issues/1095.untouched.wat @@ -1410,7 +1410,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1459,12 +1461,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/managed-cast.untouched.wat b/tests/compiler/managed-cast.untouched.wat index 5c8385f30c..1c3c6de678 100644 --- a/tests/compiler/managed-cast.untouched.wat +++ b/tests/compiler/managed-cast.untouched.wat @@ -1412,7 +1412,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1461,12 +1463,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/memcpy.untouched.wat b/tests/compiler/memcpy.untouched.wat index 4021295786..73835e9b4b 100644 --- a/tests/compiler/memcpy.untouched.wat +++ b/tests/compiler/memcpy.untouched.wat @@ -1069,7 +1069,9 @@ call $memcpy/memcpy global.set $memcpy/dest global.get $memcpy/dest - i32.const 9 + global.get $memcpy/base + i32.const 1 + i32.add i32.eq i32.eqz if @@ -1080,7 +1082,7 @@ call $~lib/builtins/abort unreachable end - i32.const 8 + global.get $memcpy/base i64.load i64.const 1229783084848853777 i64.eq @@ -1099,7 +1101,7 @@ call $memcpy/memcpy global.set $memcpy/dest global.get $memcpy/dest - i32.const 8 + global.get $memcpy/base i32.eq i32.eqz if @@ -1110,7 +1112,7 @@ call $~lib/builtins/abort unreachable end - i32.const 8 + global.get $memcpy/base i64.load i64.const 1229783084848853777 i64.eq @@ -1123,7 +1125,9 @@ call $~lib/builtins/abort unreachable end - i32.const 16 + global.get $memcpy/base + i32.const 8 + i32.add i64.load i64.const 2459565876494606882 i64.eq @@ -1136,7 +1140,9 @@ call $~lib/builtins/abort unreachable end - i32.const 24 + global.get $memcpy/base + i32.const 16 + i32.add i64.load i64.const 3689348814741910323 i64.eq @@ -1149,7 +1155,9 @@ call $~lib/builtins/abort unreachable end - i32.const 32 + global.get $memcpy/base + i32.const 24 + i32.add i64.load i64.const 4919131752989213764 i64.eq @@ -1171,7 +1179,7 @@ i32.const 3 call $memcpy/memcpy global.set $memcpy/dest - i32.const 8 + global.get $memcpy/base i64.load i64.const 4919131679688438545 i64.eq @@ -1193,7 +1201,7 @@ i32.const 15 call $memcpy/memcpy global.set $memcpy/dest - i32.const 8 + global.get $memcpy/base i64.load i64.const 4919131679688438545 i64.eq @@ -1206,7 +1214,9 @@ call $~lib/builtins/abort unreachable end - i32.const 16 + global.get $memcpy/base + i32.const 8 + i32.add i64.load i64.const 3689348814741910323 i64.eq @@ -1219,7 +1229,9 @@ call $~lib/builtins/abort unreachable end - i32.const 24 + global.get $memcpy/base + i32.const 16 + i32.add i64.load i64.const 3694152654344438852 i64.eq @@ -1232,7 +1244,9 @@ call $~lib/builtins/abort unreachable end - i32.const 32 + global.get $memcpy/base + i32.const 24 + i32.add i64.load i64.const 4919131752989213764 i64.eq diff --git a/tests/compiler/memmove.untouched.wat b/tests/compiler/memmove.untouched.wat index fc894c6dbc..80fd6c4623 100644 --- a/tests/compiler/memmove.untouched.wat +++ b/tests/compiler/memmove.untouched.wat @@ -234,7 +234,9 @@ call $memmove/memmove global.set $memmove/dest global.get $memmove/dest - i32.const 9 + global.get $memmove/base + i32.const 1 + i32.add i32.eq i32.eqz if @@ -245,7 +247,7 @@ call $~lib/builtins/abort unreachable end - i32.const 8 + global.get $memmove/base i64.load i64.const 1229783084848853777 i64.eq @@ -264,7 +266,7 @@ call $memmove/memmove global.set $memmove/dest global.get $memmove/dest - i32.const 8 + global.get $memmove/base i32.eq i32.eqz if @@ -275,7 +277,7 @@ call $~lib/builtins/abort unreachable end - i32.const 8 + global.get $memmove/base i64.load i64.const 1229783084848853777 i64.eq @@ -288,7 +290,9 @@ call $~lib/builtins/abort unreachable end - i32.const 16 + global.get $memmove/base + i32.const 8 + i32.add i64.load i64.const 2459565876494606882 i64.eq @@ -301,7 +305,9 @@ call $~lib/builtins/abort unreachable end - i32.const 24 + global.get $memmove/base + i32.const 16 + i32.add i64.load i64.const 3689348814741910323 i64.eq @@ -314,7 +320,9 @@ call $~lib/builtins/abort unreachable end - i32.const 32 + global.get $memmove/base + i32.const 24 + i32.add i64.load i64.const 4919131752989213764 i64.eq @@ -336,7 +344,7 @@ i32.const 3 call $memmove/memmove global.set $memmove/dest - i32.const 8 + global.get $memmove/base i64.load i64.const 4919131679688438545 i64.eq @@ -358,7 +366,7 @@ i32.const 15 call $memmove/memmove global.set $memmove/dest - i32.const 8 + global.get $memmove/base i64.load i64.const 4919131679688438545 i64.eq @@ -371,7 +379,9 @@ call $~lib/builtins/abort unreachable end - i32.const 16 + global.get $memmove/base + i32.const 8 + i32.add i64.load i64.const 3689348814741910323 i64.eq @@ -384,7 +394,9 @@ call $~lib/builtins/abort unreachable end - i32.const 24 + global.get $memmove/base + i32.const 16 + i32.add i64.load i64.const 3694152654344438852 i64.eq @@ -397,7 +409,9 @@ call $~lib/builtins/abort unreachable end - i32.const 32 + global.get $memmove/base + i32.const 24 + i32.add i64.load i64.const 4919131752989213764 i64.eq diff --git a/tests/compiler/memorybase.untouched.wat b/tests/compiler/memorybase.untouched.wat index 2651d111ca..041735216e 100644 --- a/tests/compiler/memorybase.untouched.wat +++ b/tests/compiler/memorybase.untouched.wat @@ -1,8 +1,25 @@ (module + (type $none_=>_none (func)) (memory $0 1) (data (i32.const 1024) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00") (table $0 1 funcref) (global $memorybase/staticString i32 (i32.const 1040)) (global $~lib/ASC_MEMORY_BASE i32 (i32.const 1024)) (export "memory" (memory $0)) + (start $~start) + (func $start:memorybase + i32.const 1024 + i32.const 1024 + i32.eq + drop + global.get $memorybase/staticString + i32.const 16 + i32.sub + i32.const 1024 + i32.eq + drop + ) + (func $~start + call $start:memorybase + ) ) diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index b70ef2d91a..5f8f7c3b6c 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -3580,7 +3580,8 @@ call $~lib/builtins/abort unreachable end - i32.const 1 + i32.const 0 + i32.eqz call $~lib/number/Bool#toString local.tee $7 i32.const 1824 @@ -3594,7 +3595,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i32.const 1 + i32.eqz call $~lib/number/Bool#toString local.tee $8 i32.const 1856 @@ -3646,20 +3648,14 @@ call $~lib/builtins/abort unreachable end - f32.const nan:0x400000 + global.get $~lib/number/F32.NaN local.tee $11 local.get $11 f32.ne - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 23 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f32.const -16777216 + drop + global.get $~lib/builtins/f32.MIN_SAFE_INTEGER + f32.const 1 + f32.sub call $~lib/number/F32.isSafeInteger i32.const 0 i32.eq @@ -3672,7 +3668,7 @@ call $~lib/builtins/abort unreachable end - f32.const -16777215 + global.get $~lib/builtins/f32.MIN_SAFE_INTEGER call $~lib/number/F32.isSafeInteger i32.const 1 i32.eq @@ -3737,7 +3733,7 @@ call $~lib/builtins/abort unreachable end - f32.const 16777215 + global.get $~lib/builtins/f32.MAX_SAFE_INTEGER call $~lib/number/F32.isSafeInteger i32.const 1 i32.eq @@ -3750,7 +3746,9 @@ call $~lib/builtins/abort unreachable end - f32.const 16777216 + global.get $~lib/builtins/f32.MAX_SAFE_INTEGER + f32.const 1 + f32.add call $~lib/number/F32.isSafeInteger i32.const 0 i32.eq @@ -3828,7 +3826,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1920928955078125e-07 + global.get $~lib/builtins/f32.EPSILON call $~lib/number/F32.isInteger i32.const 0 i32.eq @@ -3867,7 +3865,7 @@ call $~lib/builtins/abort unreachable end - f32.const -16777215 + global.get $~lib/builtins/f32.MIN_SAFE_INTEGER call $~lib/number/F32.isInteger i32.const 1 i32.eq @@ -3880,7 +3878,7 @@ call $~lib/builtins/abort unreachable end - f32.const 16777215 + global.get $~lib/builtins/f32.MAX_SAFE_INTEGER call $~lib/number/F32.isInteger i32.const 1 i32.eq @@ -3919,20 +3917,14 @@ call $~lib/builtins/abort unreachable end - f64.const nan:0x8000000000000 + global.get $~lib/number/F64.NaN local.tee $12 local.get $12 f64.ne - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 46 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const -9007199254740992 + drop + global.get $~lib/builtins/f64.MIN_SAFE_INTEGER + f64.const 1 + f64.sub call $~lib/number/F64.isSafeInteger i32.const 0 i32.eq @@ -3945,7 +3937,7 @@ call $~lib/builtins/abort unreachable end - f64.const -9007199254740991 + global.get $~lib/builtins/f64.MIN_SAFE_INTEGER call $~lib/number/F64.isSafeInteger i32.const 1 i32.eq @@ -4010,7 +4002,7 @@ call $~lib/builtins/abort unreachable end - f64.const 9007199254740991 + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER call $~lib/number/F64.isSafeInteger i32.const 1 i32.eq @@ -4023,7 +4015,9 @@ call $~lib/builtins/abort unreachable end - f64.const 9007199254740992 + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER + f64.const 1 + f64.add call $~lib/number/F64.isSafeInteger i32.const 0 i32.eq @@ -4101,7 +4095,7 @@ call $~lib/builtins/abort unreachable end - f64.const 2.220446049250313e-16 + global.get $~lib/builtins/f64.EPSILON call $~lib/number/F64.isInteger i32.const 0 i32.eq @@ -4140,7 +4134,7 @@ call $~lib/builtins/abort unreachable end - f64.const -9007199254740991 + global.get $~lib/builtins/f64.MIN_SAFE_INTEGER call $~lib/number/F64.isInteger i32.const 1 i32.eq @@ -4153,7 +4147,7 @@ call $~lib/builtins/abort unreachable end - f64.const 9007199254740991 + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER call $~lib/number/F64.isInteger i32.const 1 i32.eq diff --git a/tests/compiler/rc/global-init.untouched.wat b/tests/compiler/rc/global-init.untouched.wat index 88da119b1c..5e52828faa 100644 --- a/tests/compiler/rc/global-init.untouched.wat +++ b/tests/compiler/rc/global-init.untouched.wat @@ -29,12 +29,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/rc/local-init.untouched.wat b/tests/compiler/rc/local-init.untouched.wat index 7485847a9d..3f346a5bc7 100644 --- a/tests/compiler/rc/local-init.untouched.wat +++ b/tests/compiler/rc/local-init.untouched.wat @@ -1423,7 +1423,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1472,12 +1474,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/rc/logical-and-mismatch.untouched.wat b/tests/compiler/rc/logical-and-mismatch.untouched.wat index e104bd0e21..75a31a6e5d 100644 --- a/tests/compiler/rc/logical-and-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-and-mismatch.untouched.wat @@ -1409,7 +1409,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1458,12 +1460,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/rc/logical-or-mismatch.untouched.wat b/tests/compiler/rc/logical-or-mismatch.untouched.wat index 884e39ef39..05b2addd50 100644 --- a/tests/compiler/rc/logical-or-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-or-mismatch.untouched.wat @@ -1409,7 +1409,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1458,12 +1460,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/rc/optimize.untouched.wat b/tests/compiler/rc/optimize.untouched.wat index b7dfe0caba..2504b02101 100644 --- a/tests/compiler/rc/optimize.untouched.wat +++ b/tests/compiler/rc/optimize.untouched.wat @@ -70,12 +70,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1508,7 +1512,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u diff --git a/tests/compiler/rc/rereturn.untouched.wat b/tests/compiler/rc/rereturn.untouched.wat index 6316e03c04..86eaab64c7 100644 --- a/tests/compiler/rc/rereturn.untouched.wat +++ b/tests/compiler/rc/rereturn.untouched.wat @@ -1411,7 +1411,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1458,12 +1460,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/rc/ternary-mismatch.untouched.wat b/tests/compiler/rc/ternary-mismatch.untouched.wat index 2a9c771b6b..f502716e41 100644 --- a/tests/compiler/rc/ternary-mismatch.untouched.wat +++ b/tests/compiler/rc/ternary-mismatch.untouched.wat @@ -1411,7 +1411,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1460,12 +1462,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/resolve-binary.untouched.wat b/tests/compiler/resolve-binary.untouched.wat index 7681c4254d..9e716591e0 100644 --- a/tests/compiler/resolve-binary.untouched.wat +++ b/tests/compiler/resolve-binary.untouched.wat @@ -4624,6 +4624,8 @@ (local $62 i32) (local $63 i32) i32.const 1 + i32.const 2 + i32.lt_u call $~lib/number/Bool#toString local.tee $0 i32.const 32 @@ -4637,7 +4639,9 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i32.const 1 + i32.const 2 + i32.gt_u call $~lib/number/Bool#toString local.tee $1 i32.const 64 @@ -4652,6 +4656,8 @@ unreachable end i32.const 1 + i32.const 2 + i32.le_u call $~lib/number/Bool#toString local.tee $2 i32.const 32 @@ -4665,7 +4671,9 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i32.const 1 + i32.const 2 + i32.ge_u call $~lib/number/Bool#toString local.tee $3 i32.const 64 @@ -4679,7 +4687,9 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i32.const 1 + i32.const 2 + i32.eq call $~lib/number/Bool#toString local.tee $4 i32.const 64 @@ -4694,6 +4704,8 @@ unreachable end i32.const 1 + i32.const 2 + i32.ne call $~lib/number/Bool#toString local.tee $5 i32.const 32 @@ -4707,7 +4719,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1 + i32.const 160 + i32.const 160 + i32.eq call $~lib/number/Bool#toString local.tee $6 i32.const 32 @@ -4721,7 +4735,9 @@ call $~lib/builtins/abort unreachable end - i32.const 0 + i32.const 160 + i32.const 160 + i32.ne call $~lib/number/Bool#toString local.tee $7 i32.const 64 @@ -4982,7 +4998,9 @@ call $~lib/builtins/abort unreachable end - i32.const 3 + i32.const 1 + i32.const 2 + i32.add call $~lib/number/I32#toString local.tee $21 i32.const 8016 @@ -4996,7 +5014,9 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + i32.const 1 + i32.const 2 + i32.sub call $~lib/number/I32#toString local.tee $22 i32.const 8048 @@ -5010,7 +5030,9 @@ call $~lib/builtins/abort unreachable end + i32.const 1 i32.const 2 + i32.mul call $~lib/number/I32#toString local.tee $23 i32.const 656 @@ -5024,7 +5046,9 @@ call $~lib/builtins/abort unreachable end + i32.const 4 i32.const 2 + i32.div_u call $~lib/number/I32#toString local.tee $24 i32.const 656 @@ -5038,7 +5062,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1 + i32.const 3 + i32.const 2 + i32.rem_u call $~lib/number/I32#toString local.tee $25 i32.const 624 @@ -5052,7 +5078,8 @@ call $~lib/builtins/abort unreachable end - f64.const 2 + i32.const 2 + f64.convert_i32_u f64.const 2 call $~lib/math/NativeMath.pow i32.const 0 @@ -5069,7 +5096,9 @@ call $~lib/builtins/abort unreachable end - i32.const 4 + i32.const 2 + i32.const 1 + i32.shl call $~lib/number/I32#toString local.tee $27 i32.const 7984 @@ -5083,7 +5112,9 @@ call $~lib/builtins/abort unreachable end + i32.const 2 i32.const 1 + i32.shr_u call $~lib/number/I32#toString local.tee $28 i32.const 624 @@ -5097,7 +5128,9 @@ call $~lib/builtins/abort unreachable end - i32.const 3 + i32.const -1 + i32.const 30 + i32.shr_u call $~lib/number/I32#toString local.tee $29 i32.const 8016 @@ -5111,7 +5144,9 @@ call $~lib/builtins/abort unreachable end + i32.const 3 i32.const 1 + i32.and call $~lib/number/I32#toString local.tee $30 i32.const 624 @@ -5125,7 +5160,9 @@ call $~lib/builtins/abort unreachable end - i32.const 3 + i32.const 1 + i32.const 2 + i32.or call $~lib/number/I32#toString local.tee $31 i32.const 8016 @@ -5139,7 +5176,9 @@ call $~lib/builtins/abort unreachable end - i32.const 2 + i32.const 1 + i32.const 3 + i32.xor call $~lib/number/I32#toString local.tee $32 i32.const 656 @@ -5153,7 +5192,12 @@ call $~lib/builtins/abort unreachable end - i32.const 2 + i32.const 1 + if (result i32) + i32.const 2 + else + i32.const 1 + end call $~lib/number/I32#toString local.tee $33 i32.const 656 @@ -5168,6 +5212,11 @@ unreachable end i32.const 0 + if (result i32) + i32.const 2 + else + i32.const 0 + end call $~lib/number/I32#toString local.tee $34 i32.const 192 @@ -5182,6 +5231,11 @@ unreachable end i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 2 + end call $~lib/number/I32#toString local.tee $35 i32.const 624 @@ -5195,7 +5249,12 @@ call $~lib/builtins/abort unreachable end - i32.const 2 + i32.const 0 + if (result i32) + i32.const 0 + else + i32.const 2 + end call $~lib/number/I32#toString local.tee $36 i32.const 656 diff --git a/tests/compiler/resolve-propertyaccess.untouched.wat b/tests/compiler/resolve-propertyaccess.untouched.wat index 1699742d8a..3dcedd8795 100644 --- a/tests/compiler/resolve-propertyaccess.untouched.wat +++ b/tests/compiler/resolve-propertyaccess.untouched.wat @@ -667,7 +667,7 @@ global.set $~lib/rt/stub/startOffset global.get $~lib/rt/stub/startOffset global.set $~lib/rt/stub/offset - i32.const 1 + global.get $resolve-propertyaccess/Namespace.member call $~lib/number/I32#toString local.tee $0 i32.const 464 @@ -681,7 +681,7 @@ call $~lib/builtins/abort unreachable end - i32.const 11 + global.get $resolve-propertyaccess/Namespace.lazyMember call $~lib/number/I32#toString local.tee $1 i32.const 576 @@ -695,7 +695,7 @@ call $~lib/builtins/abort unreachable end - i32.const 2 + global.get $resolve-propertyaccess/MergedNamespace.member call $~lib/number/I32#toString local.tee $2 i32.const 608 @@ -709,7 +709,7 @@ call $~lib/builtins/abort unreachable end - i32.const 22 + global.get $resolve-propertyaccess/MergedNamespace.lazyMember call $~lib/number/I32#toString local.tee $3 i32.const 640 @@ -723,7 +723,7 @@ call $~lib/builtins/abort unreachable end - i32.const 3 + global.get $resolve-propertyaccess/TypedNamespace.member call $~lib/number/I32#toString local.tee $4 i32.const 672 @@ -737,7 +737,7 @@ call $~lib/builtins/abort unreachable end - i32.const 33 + global.get $resolve-propertyaccess/TypedNamespace.lazyMember call $~lib/number/I32#toString local.tee $5 i32.const 704 @@ -751,7 +751,7 @@ call $~lib/builtins/abort unreachable end - i32.const 4 + global.get $resolve-propertyaccess/Enum.VALUE call $~lib/number/I32#toString local.tee $6 i32.const 736 diff --git a/tests/compiler/resolve-ternary.untouched.wat b/tests/compiler/resolve-ternary.untouched.wat index ea92c0b2d2..58b3a26172 100644 --- a/tests/compiler/resolve-ternary.untouched.wat +++ b/tests/compiler/resolve-ternary.untouched.wat @@ -1442,7 +1442,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1489,12 +1491,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -4677,7 +4683,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -4829,7 +4837,8 @@ end global.get $resolve-ternary/b if (result f64) - f64.const 1 + i32.const 1 + f64.convert_i32_u else f64.const 2 end @@ -4852,9 +4861,9 @@ i32.const 1 global.get $resolve-ternary/b if (result i32) - i32.const 1 + global.get $resolve-ternary/f1 else - i32.const 2 + global.get $resolve-ternary/f2 end call_indirect (type $i32_=>_i32) i32.const 2 @@ -4894,7 +4903,7 @@ i32.const 1 global.get $resolve-ternary/b if (result i32) - i32.const 2 + global.get $resolve-ternary/f2 else i32.const 4 end diff --git a/tests/compiler/retain-i32.untouched.wat b/tests/compiler/retain-i32.untouched.wat index 276e62648f..a096fb55d4 100644 --- a/tests/compiler/retain-i32.untouched.wat +++ b/tests/compiler/retain-i32.untouched.wat @@ -335,6 +335,8 @@ i32.const 0 i32.load8_s local.set $0 + i32.const 1 + drop ) (func $start:retain-i32 (local $0 i32) @@ -795,6 +797,8 @@ i32.const 0 i32.load8_s global.set $retain-i32/ri + i32.const 1 + drop call $retain-i32/testLocalRetain ) (func $~start diff --git a/tests/compiler/retain-release-sanity.untouched.wat b/tests/compiler/retain-release-sanity.untouched.wat index 39bb41cec8..f26dd06d7d 100644 --- a/tests/compiler/retain-release-sanity.untouched.wat +++ b/tests/compiler/retain-release-sanity.untouched.wat @@ -1425,7 +1425,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1687,12 +1689,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1862,7 +1868,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -4528,12 +4536,16 @@ i32.load offset=4 local.set $3 local.get $3 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $3 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/retain-return.untouched.wat b/tests/compiler/retain-return.untouched.wat index fc1875db4d..f5aa0900ed 100644 --- a/tests/compiler/retain-return.untouched.wat +++ b/tests/compiler/retain-return.untouched.wat @@ -1415,7 +1415,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1462,12 +1464,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/rt/ids.untouched.wat b/tests/compiler/rt/ids.untouched.wat index bffe105a3d..f066c481fb 100644 --- a/tests/compiler/rt/ids.untouched.wat +++ b/tests/compiler/rt/ids.untouched.wat @@ -1,5 +1,24 @@ (module + (type $none_=>_none (func)) (memory $0 0) (table $0 1 funcref) (export "memory" (memory $0)) + (start $~start) + (func $start:rt/ids + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 1 + i32.const 1 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + ) + (func $~start + call $start:rt/ids + ) ) diff --git a/tests/compiler/rt/instanceof.untouched.wat b/tests/compiler/rt/instanceof.untouched.wat index c829a3e410..a1cb7ea6d1 100644 --- a/tests/compiler/rt/instanceof.untouched.wat +++ b/tests/compiler/rt/instanceof.untouched.wat @@ -240,6 +240,8 @@ i32.const 0 call $rt/instanceof/BlackCat#constructor global.set $rt/instanceof/blackcat + i32.const 1 + drop global.get $rt/instanceof/animal local.tee $0 i32.eqz @@ -280,6 +282,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop global.get $rt/instanceof/cat local.tee $0 i32.eqz @@ -319,6 +323,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop global.get $rt/instanceof/blackcat local.tee $0 i32.eqz diff --git a/tests/compiler/runtime-full.untouched.wat b/tests/compiler/runtime-full.untouched.wat index 0185ae6b3f..d7ab098ac5 100644 --- a/tests/compiler/runtime-full.untouched.wat +++ b/tests/compiler/runtime-full.untouched.wat @@ -1410,7 +1410,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1457,12 +1459,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index fa16e43702..86d15dc5a3 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -1497,7 +1497,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -2817,12 +2819,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -2957,7 +2963,7 @@ (func $start:std/array-literal (local $0 i32) (local $1 i32) - i32.const 64 + global.get $std/array-literal/staticArrayI8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -2970,7 +2976,7 @@ call $~lib/builtins/abort unreachable end - i32.const 64 + global.get $std/array-literal/staticArrayI8 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -2984,7 +2990,7 @@ call $~lib/builtins/abort unreachable end - i32.const 64 + global.get $std/array-literal/staticArrayI8 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -2998,7 +3004,7 @@ call $~lib/builtins/abort unreachable end - i32.const 64 + global.get $std/array-literal/staticArrayI8 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -3012,7 +3018,7 @@ call $~lib/builtins/abort unreachable end - i32.const 304 + global.get $std/array-literal/staticArrayI32 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3025,7 +3031,7 @@ call $~lib/builtins/abort unreachable end - i32.const 304 + global.get $std/array-literal/staticArrayI32 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -3039,7 +3045,7 @@ call $~lib/builtins/abort unreachable end - i32.const 304 + global.get $std/array-literal/staticArrayI32 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -3053,7 +3059,7 @@ call $~lib/builtins/abort unreachable end - i32.const 304 + global.get $std/array-literal/staticArrayI32 i32.const 2 call $~lib/array/Array#__get i32.const 2 diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 01d780853c..ba396f0fb3 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -1644,7 +1644,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1906,12 +1908,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -4029,7 +4035,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -18945,6 +18953,18 @@ (local $63 i32) i32.const 0 i32.const 0 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 0 + i32.const 0 call $~lib/array/Array#constructor global.set $std/array/arr i32.const 0 @@ -19966,7 +19986,7 @@ local.get $3 i32.const 0 i32.const 3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $2 i32.const 5 @@ -20001,7 +20021,7 @@ local.get $3 i32.const 1 i32.const 3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $4 i32.const 5 @@ -20036,7 +20056,7 @@ local.get $3 i32.const 1 i32.const 2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $5 i32.const 5 @@ -20071,7 +20091,7 @@ local.get $3 i32.const 2 i32.const 2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $6 i32.const 5 @@ -20211,7 +20231,7 @@ local.get $3 i32.const 0 i32.const -2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $14 i32.const 5 @@ -20351,7 +20371,7 @@ local.get $3 i32.const -4 i32.const -3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin local.tee $22 i32.const 5 @@ -21363,7 +21383,7 @@ local.set $25 local.get $25 i32.const 0 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice local.tee $20 i32.const 5 @@ -21469,7 +21489,7 @@ local.set $25 local.get $25 i32.const 2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice local.tee $3 i32.const 3 @@ -21628,7 +21648,7 @@ local.set $25 local.get $25 i32.const -1 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice local.tee $4 i32.const 1 @@ -21681,7 +21701,7 @@ local.set $25 local.get $25 i32.const -2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice local.tee $1 i32.const 2 diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index c263368d01..c0cca6a6ba 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -1417,7 +1417,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1679,12 +1681,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index e402c5d8b1..0510a6e0c2 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -1425,7 +1425,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1687,12 +1689,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index 179f9ffe55..8c1e5d210c 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -1433,7 +1433,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1482,12 +1484,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -2387,7 +2393,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index 949081e5e4..7ee6e66b0b 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -16300,7 +16300,15 @@ (local $2 i32) (local $3 i64) (local $4 f32) - f64.const 2.718281828459045 + global.get $~lib/math/NativeMath.E + global.get $~lib/math/NativeMath.E + f64.eq + drop + global.get $~lib/math/NativeMathf.E + global.get $~lib/math/NativeMathf.E + f32.eq + drop + global.get $~lib/math/NativeMath.E global.get $~lib/bindings/Math/E f64.const 0 i32.const 0 @@ -16314,7 +16322,7 @@ call $~lib/builtins/abort unreachable end - f64.const 0.6931471805599453 + global.get $~lib/math/NativeMath.LN2 global.get $~lib/bindings/Math/LN2 f64.const 0 i32.const 0 @@ -16328,7 +16336,7 @@ call $~lib/builtins/abort unreachable end - f64.const 2.302585092994046 + global.get $~lib/math/NativeMath.LN10 global.get $~lib/bindings/Math/LN10 f64.const 0 i32.const 0 @@ -16342,7 +16350,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1.4426950408889634 + global.get $~lib/math/NativeMath.LOG2E global.get $~lib/bindings/Math/LOG2E f64.const 0 i32.const 0 @@ -16356,7 +16364,7 @@ call $~lib/builtins/abort unreachable end - f64.const 3.141592653589793 + global.get $~lib/math/NativeMath.PI global.get $~lib/bindings/Math/PI f64.const 0 i32.const 0 @@ -16370,7 +16378,7 @@ call $~lib/builtins/abort unreachable end - f64.const 0.7071067811865476 + global.get $~lib/math/NativeMath.SQRT1_2 global.get $~lib/bindings/Math/SQRT1_2 f64.const 0 i32.const 0 @@ -16384,7 +16392,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1.4142135623730951 + global.get $~lib/math/NativeMath.SQRT2 global.get $~lib/bindings/Math/SQRT2 f64.const 0 i32.const 0 @@ -16398,7 +16406,7 @@ call $~lib/builtins/abort unreachable end - f32.const 2.7182817459106445 + global.get $~lib/math/NativeMathf.E global.get $~lib/bindings/Math/E f32.demote_f64 f32.const 0 @@ -16413,7 +16421,7 @@ call $~lib/builtins/abort unreachable end - f32.const 0.6931471824645996 + global.get $~lib/math/NativeMathf.LN2 global.get $~lib/bindings/Math/LN2 f32.demote_f64 f32.const 0 @@ -16428,7 +16436,7 @@ call $~lib/builtins/abort unreachable end - f32.const 2.3025851249694824 + global.get $~lib/math/NativeMathf.LN10 global.get $~lib/bindings/Math/LN10 f32.demote_f64 f32.const 0 @@ -16443,7 +16451,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1.4426950216293335 + global.get $~lib/math/NativeMathf.LOG2E global.get $~lib/bindings/Math/LOG2E f32.demote_f64 f32.const 0 @@ -16458,7 +16466,7 @@ call $~lib/builtins/abort unreachable end - f32.const 3.1415927410125732 + global.get $~lib/math/NativeMathf.PI global.get $~lib/bindings/Math/PI f32.demote_f64 f32.const 0 @@ -16473,7 +16481,7 @@ call $~lib/builtins/abort unreachable end - f32.const 0.7071067690849304 + global.get $~lib/math/NativeMathf.SQRT1_2 global.get $~lib/bindings/Math/SQRT1_2 f32.demote_f64 f32.const 0 @@ -16488,7 +16496,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1.4142135381698608 + global.get $~lib/math/NativeMathf.SQRT2 global.get $~lib/bindings/Math/SQRT2 f32.demote_f64 f32.const 0 @@ -16728,9 +16736,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg i32.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_scalbn @@ -16792,7 +16802,9 @@ i32.const 2147483647 f64.const inf f64.const 0 - i32.const 17 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or call $std/math/test_scalbn i32.eqz if @@ -16848,9 +16860,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg i32.const 2147483647 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_scalbn @@ -16897,7 +16911,9 @@ i32.const -1074 f64.const 5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbn i32.eqz if @@ -16912,7 +16928,9 @@ i32.const -1073 f64.const 5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbn i32.eqz if @@ -16927,7 +16945,9 @@ i32.const -1024 f64.const 2.781342323134007e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbn i32.eqz if @@ -17163,9 +17183,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg i32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_scalbnf @@ -17227,7 +17249,9 @@ i32.const 2147483647 f32.const inf f32.const 0 - i32.const 17 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or call $std/math/test_scalbnf i32.eqz if @@ -17283,9 +17307,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg i32.const 2147483647 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_scalbnf @@ -17332,7 +17358,9 @@ i32.const -149 f32.const 1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbnf i32.eqz if @@ -17347,7 +17375,9 @@ i32.const -148 f32.const 1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbnf i32.eqz if @@ -17362,7 +17392,9 @@ i32.const -128 f32.const 1.4693693398263237e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_scalbnf i32.eqz if @@ -17583,7 +17615,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -17821,7 +17854,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -17852,7 +17886,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17866,7 +17900,7 @@ f64.const 4.345239849338305 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17880,7 +17914,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17894,7 +17928,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17908,7 +17942,7 @@ f64.const 9.267056966972586 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -17922,7 +17956,7 @@ f64.const 0.6619858980995045 f64.const 0.8473310828433507 f64.const -0.41553276777267456 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17936,7 +17970,7 @@ f64.const -0.4066039223853553 f64.const 1.989530071088669 f64.const 0.4973946213722229 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17950,7 +17984,7 @@ f64.const 0.5617597462207241 f64.const 0.9742849645674904 f64.const -0.4428897500038147 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17964,7 +17998,7 @@ f64.const 0.7741522965913037 f64.const 0.6854215158636222 f64.const -0.12589527666568756 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17978,7 +18012,7 @@ f64.const -0.6787637026394024 f64.const 2.316874138205964 f64.const -0.17284949123859406 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -17992,7 +18026,7 @@ f64.const 0 f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -18006,7 +18040,7 @@ f64.const -1 f64.const 3.141592653589793 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -18034,7 +18068,7 @@ f64.const 1.0000000000000002 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -18048,7 +18082,7 @@ f64.const -1.0000000000000002 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -18062,7 +18096,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -18073,10 +18107,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acos i32.eqz if @@ -18104,7 +18139,7 @@ f64.const -0.5309227209592985 f64.const 2.1304853799705463 f64.const 0.1391008496284485 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -18118,7 +18153,7 @@ f64.const 0.4939556746399746 f64.const 1.0541629875851946 f64.const 0.22054767608642578 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acos i32.eqz if @@ -18132,7 +18167,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18146,7 +18181,7 @@ f32.const 4.345239639282227 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18160,7 +18195,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18174,7 +18209,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18188,7 +18223,7 @@ f32.const 9.267057418823242 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18202,7 +18237,7 @@ f32.const 0.6619858741760254 f32.const 0.8473311066627502 f32.const -0.13588131964206696 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18216,7 +18251,7 @@ f32.const -0.40660393238067627 f32.const 1.989530086517334 f32.const 0.03764917701482773 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18230,7 +18265,7 @@ f32.const 0.5617597699165344 f32.const 0.9742849469184875 f32.const 0.18443739414215088 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18244,7 +18279,7 @@ f32.const 0.7741522789001465 f32.const 0.6854215264320374 f32.const -0.29158344864845276 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18258,7 +18293,7 @@ f32.const -0.6787636876106262 f32.const 2.3168740272521973 f32.const -0.3795364499092102 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18272,7 +18307,7 @@ f32.const 0 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18286,7 +18321,7 @@ f32.const -1 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18314,7 +18349,7 @@ f32.const 1.0000001192092896 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18328,7 +18363,7 @@ f32.const -1.0000001192092896 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18342,7 +18377,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18353,10 +18388,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosf i32.eqz if @@ -18384,7 +18420,7 @@ f32.const 0.49965065717697144 f32.const 1.0476008653640747 f32.const -0.21161814033985138 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18398,7 +18434,7 @@ f32.const -0.5051405429840088 f32.const 2.1003410816192627 f32.const -0.20852705836296082 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18412,7 +18448,7 @@ f32.const -0.5189794898033142 f32.const 2.116452932357788 f32.const -0.14600826799869537 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosf i32.eqz if @@ -18426,7 +18462,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18440,7 +18476,7 @@ f64.const 4.345239849338305 f64.const 2.1487163980597503 f64.const -0.291634738445282 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosh i32.eqz if @@ -18454,7 +18490,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18468,7 +18504,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18482,7 +18518,7 @@ f64.const 9.267056966972586 f64.const 2.91668914109908 f64.const -0.24191908538341522 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosh i32.eqz if @@ -18496,7 +18532,7 @@ f64.const 0.6619858980995045 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18510,7 +18546,7 @@ f64.const -0.4066039223853553 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18524,7 +18560,7 @@ f64.const 0.5617597462207241 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18538,7 +18574,7 @@ f64.const 0.7741522965913037 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18552,7 +18588,7 @@ f64.const -0.6787637026394024 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18608,7 +18644,7 @@ f64.const 0.9999923706054688 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18622,7 +18658,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18636,7 +18672,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18647,10 +18683,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acosh i32.eqz if @@ -18664,7 +18701,7 @@ f64.const 1.1060831199926429 f64.const 0.4566373404384803 f64.const -0.29381608963012695 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosh i32.eqz if @@ -18678,7 +18715,7 @@ f64.const 1.1089809557628658 f64.const 0.4627246859959428 f64.const -0.3990095555782318 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosh i32.eqz if @@ -18692,7 +18729,7 @@ f64.const 1.1169429159875521 f64.const 0.47902433134075284 f64.const -0.321674108505249 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acosh i32.eqz if @@ -18706,7 +18743,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18720,7 +18757,7 @@ f32.const 4.345239639282227 f32.const 2.148716449737549 f32.const 0.4251045286655426 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acoshf i32.eqz if @@ -18734,7 +18771,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18748,7 +18785,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18762,7 +18799,7 @@ f32.const 9.267057418823242 f32.const 2.916689157485962 f32.const -0.1369788944721222 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_acoshf i32.eqz if @@ -18776,7 +18813,7 @@ f32.const 0.6619858741760254 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18790,7 +18827,7 @@ f32.const -0.40660393238067627 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18804,7 +18841,7 @@ f32.const 0.5617597699165344 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18818,7 +18855,7 @@ f32.const 0.7741522789001465 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18832,7 +18869,7 @@ f32.const -0.6787636876106262 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18888,7 +18925,7 @@ f32.const 0.9999923706054688 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18902,7 +18939,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18916,7 +18953,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18927,10 +18964,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18944,7 +18982,7 @@ f32.const -1125899906842624 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_acoshf i32.eqz if @@ -18958,7 +18996,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -18972,7 +19010,7 @@ f64.const 4.345239849338305 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -18986,7 +19024,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -19000,7 +19038,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -19014,7 +19052,7 @@ f64.const 9.267056966972586 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -19028,7 +19066,7 @@ f64.const 0.6619858980995045 f64.const 0.7234652439515459 f64.const -0.13599912822246552 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -19042,7 +19080,7 @@ f64.const -0.4066039223853553 f64.const -0.41873374429377225 f64.const -0.09264230728149414 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -19056,7 +19094,7 @@ f64.const 0.5617597462207241 f64.const 0.5965113622274062 f64.const -0.10864213854074478 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -19070,7 +19108,7 @@ f64.const 0.7741522965913037 f64.const 0.8853748109312743 f64.const -0.4256366193294525 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -19084,7 +19122,7 @@ f64.const -0.6787637026394024 f64.const -0.7460778114110673 f64.const 0.13986606895923615 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -19098,7 +19136,7 @@ f64.const 1 f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -19112,7 +19150,7 @@ f64.const -1 f64.const -1.5707963267948966 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -19154,7 +19192,7 @@ f64.const 1.0000000000000002 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -19168,7 +19206,7 @@ f64.const -1.0000000000000002 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -19182,7 +19220,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -19193,10 +19231,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asin i32.eqz if @@ -19224,7 +19263,7 @@ f64.const 0.5073043929119148 f64.const 0.5320538997772349 f64.const -0.16157317161560059 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asin i32.eqz if @@ -19238,7 +19277,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19252,7 +19291,7 @@ f32.const 4.345239639282227 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19266,7 +19305,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19280,7 +19319,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19294,7 +19333,7 @@ f32.const 9.267057418823242 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19308,7 +19347,7 @@ f32.const 0.6619858741760254 f32.const 0.7234652042388916 f32.const -0.1307632476091385 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19322,7 +19361,7 @@ f32.const -0.40660393238067627 f32.const -0.41873374581336975 f32.const 0.3161141574382782 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19336,7 +19375,7 @@ f32.const 0.5617597699165344 f32.const 0.5965113639831543 f32.const -0.4510819613933563 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19350,7 +19389,7 @@ f32.const 0.7741522789001465 f32.const 0.8853747844696045 f32.const 0.02493886835873127 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19364,7 +19403,7 @@ f32.const -0.6787636876106262 f32.const -0.7460777759552002 f32.const 0.2515012323856354 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19378,7 +19417,7 @@ f32.const 1 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19392,7 +19431,7 @@ f32.const -1 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19434,7 +19473,7 @@ f32.const 1.0000001192092896 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19448,7 +19487,7 @@ f32.const -1.0000001192092896 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19462,7 +19501,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19473,10 +19512,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_asinf i32.eqz if @@ -19504,7 +19544,7 @@ f32.const 0.5004770159721375 f32.const 0.5241496562957764 f32.const -0.29427099227905273 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinf i32.eqz if @@ -19518,7 +19558,7 @@ f64.const -8.06684839057968 f64.const -2.784729878387861 f64.const -0.4762189984321594 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19532,7 +19572,7 @@ f64.const 4.345239849338305 f64.const 2.175213389013164 f64.const -0.02728751301765442 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19546,7 +19586,7 @@ f64.const -8.38143342755525 f64.const -2.822706083697696 f64.const 0.20985257625579834 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19560,7 +19600,7 @@ f64.const -6.531673581913484 f64.const -2.575619446591922 f64.const 0.3113134205341339 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19574,7 +19614,7 @@ f64.const 9.267056966972586 f64.const 2.9225114951048674 f64.const 0.4991756081581116 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19588,7 +19628,7 @@ f64.const 0.6619858980995045 f64.const 0.6212462762707166 f64.const -0.4697347581386566 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19602,7 +19642,7 @@ f64.const -0.4066039223853553 f64.const -0.39615990393192035 f64.const -0.40814438462257385 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19616,7 +19656,7 @@ f64.const 0.5617597462207241 f64.const 0.5357588870255474 f64.const 0.3520713150501251 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19630,7 +19670,7 @@ f64.const 0.7741522965913037 f64.const 0.7123571263197349 f64.const 0.13371451199054718 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19644,7 +19684,7 @@ f64.const -0.6787637026394024 f64.const -0.635182348903198 f64.const 0.04749670997262001 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinh i32.eqz if @@ -19683,8 +19723,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_asinh @@ -19728,7 +19770,7 @@ f32.const -8.066848754882812 f32.const -2.7847299575805664 f32.const -0.14418013393878937 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19742,7 +19784,7 @@ f32.const 4.345239639282227 f32.const 2.17521333694458 f32.const -0.020796965807676315 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19756,7 +19798,7 @@ f32.const -8.381433486938477 f32.const -2.8227059841156006 f32.const 0.44718533754348755 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19770,7 +19812,7 @@ f32.const -6.531673431396484 f32.const -2.5756194591522217 f32.const -0.14822272956371307 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19784,7 +19826,7 @@ f32.const 9.267057418823242 f32.const 2.922511577606201 f32.const 0.14270681142807007 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19798,7 +19840,7 @@ f32.const 0.6619858741760254 f32.const 0.6212462782859802 f32.const 0.3684912919998169 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19812,7 +19854,7 @@ f32.const -0.40660393238067627 f32.const -0.39615991711616516 f32.const -0.13170306384563446 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19826,7 +19868,7 @@ f32.const 0.5617597699165344 f32.const 0.535758912563324 f32.const 0.08184859901666641 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19840,7 +19882,7 @@ f32.const 0.7741522789001465 f32.const 0.7123571038246155 f32.const -0.14270737767219543 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19854,7 +19896,7 @@ f32.const -0.6787636876106262 f32.const -0.6351823210716248 f32.const 0.2583143711090088 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_asinhf i32.eqz if @@ -19893,8 +19935,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_asinhf @@ -19938,7 +19982,7 @@ f64.const -8.06684839057968 f64.const -1.4474613762633468 f64.const 0.14857111871242523 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19952,7 +19996,7 @@ f64.const 4.345239849338305 f64.const 1.344597927114538 f64.const -0.08170335739850998 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19966,7 +20010,7 @@ f64.const -8.38143342755525 f64.const -1.4520463463295539 f64.const -0.07505480200052261 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19980,7 +20024,7 @@ f64.const -6.531673581913484 f64.const -1.4188758658752532 f64.const -0.057633496820926666 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -19994,7 +20038,7 @@ f64.const 9.267056966972586 f64.const 1.463303145448706 f64.const 0.1606956422328949 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -20008,7 +20052,7 @@ f64.const 0.6619858980995045 f64.const 0.5847550670238325 f64.const 0.4582556486129761 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -20022,7 +20066,7 @@ f64.const -0.4066039223853553 f64.const -0.3861864177552131 f64.const -0.2574281692504883 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -20036,7 +20080,7 @@ f64.const 0.5617597462207241 f64.const 0.5118269531628881 f64.const -0.11444277316331863 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -20050,7 +20094,7 @@ f64.const 0.7741522965913037 f64.const 0.6587802431653822 f64.const -0.11286488175392151 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -20064,7 +20108,7 @@ f64.const -0.6787637026394024 f64.const -0.5963307826973472 f64.const -0.2182842344045639 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -20106,7 +20150,7 @@ f64.const 1 f64.const 0.7853981633974483 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -20120,7 +20164,7 @@ f64.const -1 f64.const -0.7853981633974483 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -20134,7 +20178,7 @@ f64.const inf f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -20145,10 +20189,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1.5707963267948966 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -20176,7 +20221,7 @@ f64.const 0.6929821535674624 f64.const 0.6060004555152562 f64.const -0.17075790464878082 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan i32.eqz if @@ -20190,7 +20235,7 @@ f32.const -8.066848754882812 f32.const -1.4474613666534424 f32.const 0.12686480581760406 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20204,7 +20249,7 @@ f32.const 4.345239639282227 f32.const 1.3445979356765747 f32.const 0.16045434772968292 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20218,7 +20263,7 @@ f32.const -8.381433486938477 f32.const -1.4520463943481445 f32.const -0.39581751823425293 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20232,7 +20277,7 @@ f32.const -6.531673431396484 f32.const -1.418875813484192 f32.const 0.410570353269577 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20246,7 +20291,7 @@ f32.const 9.267057418823242 f32.const 1.4633032083511353 f32.const 0.48403501510620117 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20260,7 +20305,7 @@ f32.const 0.6619858741760254 f32.const 0.5847550630569458 f32.const 0.2125193476676941 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20274,7 +20319,7 @@ f32.const -0.40660393238067627 f32.const -0.386186420917511 f32.const 0.18169628083705902 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20288,7 +20333,7 @@ f32.const 0.5617597699165344 f32.const 0.5118269920349121 f32.const 0.3499770760536194 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20302,7 +20347,7 @@ f32.const 0.7741522789001465 f32.const 0.6587802171707153 f32.const -0.2505330741405487 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20316,7 +20361,7 @@ f32.const -0.6787636876106262 f32.const -0.5963307619094849 f32.const 0.17614826560020447 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20358,7 +20403,7 @@ f32.const 1 f32.const 0.7853981852531433 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20372,7 +20417,7 @@ f32.const -1 f32.const -0.7853981852531433 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20386,7 +20431,7 @@ f32.const inf f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20397,10 +20442,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1.5707963705062866 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanf i32.eqz if @@ -20428,7 +20474,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20442,7 +20488,7 @@ f64.const 4.345239849338305 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20456,7 +20502,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20470,7 +20516,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20484,7 +20530,7 @@ f64.const 9.267056966972586 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20498,7 +20544,7 @@ f64.const 0.6619858980995045 f64.const 0.7963404371347943 f64.const 0.21338365972042084 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20512,7 +20558,7 @@ f64.const -0.4066039223853553 f64.const -0.43153570730602897 f64.const -0.4325666129589081 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20526,7 +20572,7 @@ f64.const 0.5617597462207241 f64.const 0.6354006111644578 f64.const -0.06527865678071976 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20540,7 +20586,7 @@ f64.const 0.7741522965913037 f64.const 1.0306085575277995 f64.const 0.14632052183151245 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20554,7 +20600,7 @@ f64.const -0.6787637026394024 f64.const -0.8268179645205255 f64.const 0.1397128701210022 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20582,7 +20628,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20593,10 +20639,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20638,7 +20685,7 @@ f64.const 1 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_atanh i32.eqz if @@ -20650,9 +20697,10 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_atanh i32.eqz if @@ -20666,7 +20714,7 @@ f64.const 1.0000152587890625 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20680,7 +20728,7 @@ f64.const -1.0000152587890625 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20694,7 +20742,7 @@ f64.const 1.3552527156068805e-20 f64.const 1.3552527156068805e-20 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20708,7 +20756,7 @@ f64.const 9.332636185032189e-302 f64.const 9.332636185032189e-302 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanh i32.eqz if @@ -20722,7 +20770,9 @@ f64.const 5.562684646268003e-309 f64.const 5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atanh i32.eqz if @@ -20736,7 +20786,9 @@ f64.const -5.562684646268003e-309 f64.const -5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atanh i32.eqz if @@ -20750,7 +20802,7 @@ f64.const 8988465674311579538646525e283 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanh i32.eqz if @@ -20764,7 +20816,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20778,7 +20830,7 @@ f32.const 4.345239639282227 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20792,7 +20844,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20806,7 +20858,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20820,7 +20872,7 @@ f32.const 9.267057418823242 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20834,7 +20886,7 @@ f32.const 0.6619858741760254 f32.const 0.7963404059410095 f32.const 0.19112196564674377 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20848,7 +20900,7 @@ f32.const -0.40660393238067627 f32.const -0.4315357208251953 f32.const -0.05180925130844116 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20862,7 +20914,7 @@ f32.const 0.5617597699165344 f32.const 0.635400652885437 f32.const 0.11911056190729141 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20876,7 +20928,7 @@ f32.const 0.7741522789001465 f32.const 1.0306085348129272 f32.const 0.1798270344734192 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20890,7 +20942,7 @@ f32.const -0.6787636876106262 f32.const -0.8268179297447205 f32.const 0.11588983237743378 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -20918,7 +20970,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20929,10 +20981,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -20974,7 +21027,7 @@ f32.const 1 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_atanhf i32.eqz if @@ -20986,9 +21039,10 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_atanhf i32.eqz if @@ -21002,7 +21056,7 @@ f32.const 1.0000152587890625 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -21016,7 +21070,7 @@ f32.const -1.0000152587890625 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -21030,7 +21084,7 @@ f32.const 1.3552527156068805e-20 f32.const 1.3552527156068805e-20 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -21044,7 +21098,7 @@ f32.const 7.888609052210118e-31 f32.const 7.888609052210118e-31 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atanhf i32.eqz if @@ -21058,7 +21112,9 @@ f32.const 2.938735877055719e-39 f32.const 2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atanhf i32.eqz if @@ -21072,7 +21128,9 @@ f32.const -2.938735877055719e-39 f32.const -2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atanhf i32.eqz if @@ -21086,7 +21144,7 @@ f32.const 1701411834604692317316873e14 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_atanhf i32.eqz if @@ -21101,7 +21159,7 @@ f64.const 4.535662560676869 f64.const -1.0585895402489023 f64.const 0.09766263514757156 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21116,7 +21174,7 @@ f64.const -8.88799136300345 f64.const 2.6868734126013067 f64.const 0.35833948850631714 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21131,7 +21189,7 @@ f64.const -2.763607337379588 f64.const -1.889300091849528 f64.const -0.46235957741737366 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21146,7 +21204,7 @@ f64.const 4.567535276842744 f64.const -0.9605469021111489 f64.const -0.21524477005004883 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21161,7 +21219,7 @@ f64.const 4.811392084359796 f64.const 1.0919123946142109 f64.const 0.3894443213939667 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21176,7 +21234,7 @@ f64.const 0.6620717923376739 f64.const -1.468508500616424 f64.const -0.448591411113739 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21191,7 +21249,7 @@ f64.const 0.05215452675006225 f64.const 1.5641600512601268 f64.const 0.3784842789173126 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21206,7 +21264,7 @@ f64.const 7.67640268511754 f64.const -0.10281658910678508 f64.const -0.13993260264396667 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21221,7 +21279,7 @@ f64.const 2.0119025790324803 f64.const 0.29697974004493516 f64.const 0.44753071665763855 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21236,7 +21294,7 @@ f64.const 0.03223983060263804 f64.const -1.5131612053303916 f64.const 0.39708876609802246 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21266,7 +21324,7 @@ f64.const -0 f64.const 3.141592653589793 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21281,7 +21339,7 @@ f64.const -1 f64.const 3.141592653589793 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21293,10 +21351,11 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 3.141592653589793 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21356,7 +21415,7 @@ f64.const -0 f64.const -3.141592653589793 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21371,7 +21430,7 @@ f64.const -1 f64.const -3.141592653589793 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21383,10 +21442,11 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const -3.141592653589793 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21431,7 +21491,7 @@ f64.const 0 f64.const -1.5707963267948966 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21446,7 +21506,7 @@ f64.const -0 f64.const -1.5707963267948966 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21461,7 +21521,7 @@ f64.const 0 f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21476,7 +21536,7 @@ f64.const -0 f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21518,10 +21578,11 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const -3.141592653589793 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21533,10 +21594,11 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 3.141592653589793 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21551,7 +21613,7 @@ f64.const 0 f64.const 1.5707963267948966 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21562,11 +21624,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const -1.5707963267948966 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21581,7 +21644,7 @@ f64.const inf f64.const 0.7853981633974483 f64.const -0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21593,10 +21656,11 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const 2.356194490192345 f64.const -0.20682445168495178 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21607,11 +21671,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const -0.7853981633974483 f64.const 0.27576595544815063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21622,11 +21687,13 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const -2.356194490192345 f64.const 0.20682445168495178 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21641,7 +21708,9 @@ f64.const 1 f64.const 1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atan2 i32.eqz if @@ -21656,7 +21725,9 @@ f64.const 8988465674311579538646525e283 f64.const 1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atan2 i32.eqz if @@ -21671,7 +21742,9 @@ f64.const 8988465674311579538646525e283 f64.const 1.668805393880401e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atan2 i32.eqz if @@ -21686,7 +21759,7 @@ f64.const -8988465674311579538646525e283 f64.const 3.141592653589793 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2 i32.eqz if @@ -21701,7 +21774,7 @@ f32.const 4.535662651062012 f32.const -1.0585895776748657 f32.const -0.22352588176727295 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21716,7 +21789,7 @@ f32.const -8.887990951538086 f32.const 2.686873435974121 f32.const 0.09464472532272339 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21731,7 +21804,7 @@ f32.const -2.7636072635650635 f32.const -1.8893001079559326 f32.const -0.21941901743412018 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21746,7 +21819,7 @@ f32.const 4.567535400390625 f32.const -0.9605468511581421 f32.const 0.46015575528144836 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21761,7 +21834,7 @@ f32.const 4.811392307281494 f32.const 1.0919123888015747 f32.const -0.05708503723144531 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21776,7 +21849,7 @@ f32.const 0.6620717644691467 f32.const -1.4685084819793701 f32.const 0.19611206650733948 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21791,7 +21864,7 @@ f32.const 0.052154526114463806 f32.const 1.5641601085662842 f32.const 0.48143187165260315 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21806,7 +21879,7 @@ f32.const 7.676402568817139 f32.const -0.10281659662723541 f32.const -0.4216274917125702 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21821,7 +21894,7 @@ f32.const 2.0119025707244873 f32.const 0.29697975516319275 f32.const 0.2322007566690445 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21836,7 +21909,7 @@ f32.const 0.03223983198404312 f32.const -1.5131611824035645 f32.const 0.16620726883411407 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21866,7 +21939,7 @@ f32.const -0 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21881,7 +21954,7 @@ f32.const -1 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21893,10 +21966,11 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 3.1415927410125732 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21956,7 +22030,7 @@ f32.const -0 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21971,7 +22045,7 @@ f32.const -1 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -21983,10 +22057,11 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const -3.1415927410125732 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22031,7 +22106,7 @@ f32.const 0 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22046,7 +22121,7 @@ f32.const -0 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22061,7 +22136,7 @@ f32.const 0 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22076,7 +22151,7 @@ f32.const -0 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22118,10 +22193,11 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const -3.1415927410125732 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22133,10 +22209,11 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 3.1415927410125732 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22151,7 +22228,7 @@ f32.const 0 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22162,11 +22239,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22181,7 +22259,7 @@ f32.const inf f32.const 0.7853981852531433 f32.const 0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22193,10 +22271,11 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const 2.356194496154785 f32.const 0.02500828728079796 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22207,11 +22286,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const -0.7853981852531433 f32.const -0.3666777014732361 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22222,11 +22302,13 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const -2.356194496154785 f32.const -0.02500828728079796 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_atan2f i32.eqz if @@ -22241,7 +22323,9 @@ f32.const 1 f32.const 5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atan2f i32.eqz if @@ -22256,7 +22340,9 @@ f32.const 1701411834604692317316873e14 f32.const 5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_atan2f i32.eqz if @@ -22270,7 +22356,7 @@ f64.const -8.06684839057968 f64.const -2.0055552545020245 f64.const 0.46667951345443726 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22284,7 +22370,7 @@ f64.const 4.345239849338305 f64.const 1.6318162410515635 f64.const -0.08160271495580673 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22298,7 +22384,7 @@ f64.const -8.38143342755525 f64.const -2.031293910673361 f64.const -0.048101816326379776 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22312,7 +22398,7 @@ f64.const -6.531673581913484 f64.const -1.8692820012204925 f64.const 0.08624018728733063 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22326,7 +22412,7 @@ f64.const 9.267056966972586 f64.const 2.100457720859702 f64.const -0.2722989022731781 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22340,7 +22426,7 @@ f64.const 0.6619858980995045 f64.const 0.8715311470455973 f64.const 0.4414918124675751 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22354,7 +22440,7 @@ f64.const -0.4066039223853553 f64.const -0.740839030300223 f64.const 0.016453813761472702 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22368,7 +22454,7 @@ f64.const 0.5617597462207241 f64.const 0.8251195400559286 f64.const 0.30680638551712036 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22382,7 +22468,7 @@ f64.const 0.7741522965913037 f64.const 0.9182102478959914 f64.const 0.06543998420238495 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22396,7 +22482,7 @@ f64.const -0.6787637026394024 f64.const -0.8788326906580094 f64.const -0.2016713172197342 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrt i32.eqz if @@ -22435,8 +22521,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_cbrt @@ -22550,7 +22638,7 @@ f32.const -8.066848754882812 f32.const -2.0055553913116455 f32.const -0.44719240069389343 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22564,7 +22652,7 @@ f32.const 4.345239639282227 f32.const 1.6318162679672241 f32.const 0.44636252522468567 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22578,7 +22666,7 @@ f32.const -8.381433486938477 f32.const -2.0312938690185547 f32.const 0.19483426213264465 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22592,7 +22680,7 @@ f32.const -6.531673431396484 f32.const -1.8692820072174072 f32.const -0.17075514793395996 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22606,7 +22694,7 @@ f32.const 9.267057418823242 f32.const 2.1004576683044434 f32.const -0.36362043023109436 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22620,7 +22708,7 @@ f32.const 0.6619858741760254 f32.const 0.8715311288833618 f32.const -0.12857209146022797 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22634,7 +22722,7 @@ f32.const -0.40660393238067627 f32.const -0.7408390641212463 f32.const -0.4655757546424866 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22648,7 +22736,7 @@ f32.const 0.5617597699165344 f32.const 0.8251195549964905 f32.const 0.05601907894015312 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22662,7 +22750,7 @@ f32.const 0.7741522789001465 f32.const 0.9182102680206299 f32.const 0.45498204231262207 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22676,7 +22764,7 @@ f32.const -0.6787636876106262 f32.const -0.8788326978683472 f32.const -0.22978967428207397 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cbrtf i32.eqz if @@ -22715,8 +22803,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_cbrtf @@ -22830,7 +22920,7 @@ f64.const -8.06684839057968 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22844,7 +22934,7 @@ f64.const 4.345239849338305 f64.const 5 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22858,7 +22948,7 @@ f64.const -8.38143342755525 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22872,7 +22962,7 @@ f64.const -6.531673581913484 f64.const -6 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22886,7 +22976,7 @@ f64.const 9.267056966972586 f64.const 10 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22900,7 +22990,7 @@ f64.const 0.6619858980995045 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22914,7 +23004,7 @@ f64.const -0.4066039223853553 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22928,7 +23018,7 @@ f64.const 0.5617597462207241 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22942,7 +23032,7 @@ f64.const 0.7741522965913037 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22956,7 +23046,7 @@ f64.const -0.6787637026394024 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -22995,8 +23085,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_ceil @@ -23068,7 +23160,7 @@ f64.const 0.5 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23082,7 +23174,7 @@ f64.const -0.5 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23096,7 +23188,7 @@ f64.const 1.0000152587890625 f64.const 2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23110,7 +23202,7 @@ f64.const -1.0000152587890625 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23124,7 +23216,7 @@ f64.const 0.9999923706054688 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23138,7 +23230,7 @@ f64.const -0.9999923706054688 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23152,7 +23244,7 @@ f64.const 7.888609052210118e-31 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23166,7 +23258,7 @@ f64.const -7.888609052210118e-31 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23205,8 +23297,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_ceil @@ -23278,7 +23372,7 @@ f64.const 0.5 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23292,7 +23386,7 @@ f64.const -0.5 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23306,7 +23400,7 @@ f64.const 1.0000152587890625 f64.const 2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23320,7 +23414,7 @@ f64.const -1.0000152587890625 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23334,7 +23428,7 @@ f64.const 0.9999923706054688 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23348,7 +23442,7 @@ f64.const -0.9999923706054688 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23362,7 +23456,7 @@ f64.const 7.888609052210118e-31 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23376,7 +23470,7 @@ f64.const -7.888609052210118e-31 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23415,8 +23509,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_ceil @@ -23488,7 +23584,7 @@ f64.const 0.5 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23502,7 +23598,7 @@ f64.const -0.5 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23516,7 +23612,7 @@ f64.const 1.0000152587890625 f64.const 2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23530,7 +23626,7 @@ f64.const -1.0000152587890625 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23544,7 +23640,7 @@ f64.const 0.9999923706054688 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23558,7 +23654,7 @@ f64.const -0.9999923706054688 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23572,7 +23668,7 @@ f64.const 7.888609052210118e-31 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23586,7 +23682,7 @@ f64.const -7.888609052210118e-31 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceil i32.eqz if @@ -23600,7 +23696,7 @@ f32.const -8.066848754882812 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23614,7 +23710,7 @@ f32.const 4.345239639282227 f32.const 5 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23628,7 +23724,7 @@ f32.const -8.381433486938477 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23642,7 +23738,7 @@ f32.const -6.531673431396484 f32.const -6 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23656,7 +23752,7 @@ f32.const 9.267057418823242 f32.const 10 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23670,7 +23766,7 @@ f32.const 0.6619858741760254 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23684,7 +23780,7 @@ f32.const -0.40660393238067627 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23698,7 +23794,7 @@ f32.const 0.5617597699165344 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23712,7 +23808,7 @@ f32.const 0.7741522789001465 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23726,7 +23822,7 @@ f32.const -0.6787636876106262 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23765,8 +23861,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_ceilf @@ -23838,7 +23936,7 @@ f32.const 0.5 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23852,7 +23950,7 @@ f32.const -0.5 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23866,7 +23964,7 @@ f32.const 1.0000152587890625 f32.const 2 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23880,7 +23978,7 @@ f32.const -1.0000152587890625 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23894,7 +23992,7 @@ f32.const 0.9999923706054688 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23908,7 +24006,7 @@ f32.const -0.9999923706054688 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23922,7 +24020,7 @@ f32.const 7.888609052210118e-31 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23936,7 +24034,7 @@ f32.const -7.888609052210118e-31 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -23975,8 +24073,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_ceilf @@ -24048,7 +24148,7 @@ f32.const 0.5 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24062,7 +24162,7 @@ f32.const -0.5 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24076,7 +24176,7 @@ f32.const 1.0000152587890625 f32.const 2 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24090,7 +24190,7 @@ f32.const -1.0000152587890625 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24104,7 +24204,7 @@ f32.const 0.9999923706054688 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24118,7 +24218,7 @@ f32.const -0.9999923706054688 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24132,7 +24232,7 @@ f32.const 7.888609052210118e-31 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24146,7 +24246,7 @@ f32.const -7.888609052210118e-31 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24185,8 +24285,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_ceilf @@ -24258,7 +24360,7 @@ f32.const 0.5 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24272,7 +24374,7 @@ f32.const -0.5 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24286,7 +24388,7 @@ f32.const 1.0000152587890625 f32.const 2 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24300,7 +24402,7 @@ f32.const -1.0000152587890625 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24314,7 +24416,7 @@ f32.const 0.9999923706054688 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24328,7 +24430,7 @@ f32.const -0.9999923706054688 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24342,7 +24444,7 @@ f32.const 7.888609052210118e-31 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24356,7 +24458,7 @@ f32.const -7.888609052210118e-31 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_ceilf i32.eqz if @@ -24370,7 +24472,7 @@ f64.const -8.06684839057968 f64.const -0.21126281599887137 f64.const -0.10962469130754471 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24384,7 +24486,7 @@ f64.const 4.345239849338305 f64.const -0.35895602297578955 f64.const -0.10759828239679337 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24398,7 +24500,7 @@ f64.const -8.38143342755525 f64.const -0.503333091765516 f64.const -0.021430473774671555 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24412,7 +24514,7 @@ f64.const -6.531673581913484 f64.const 0.9692853212503283 f64.const -0.4787876307964325 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24426,7 +24528,7 @@ f64.const 9.267056966972586 f64.const -0.9875878064788627 f64.const 0.4880668818950653 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24440,7 +24542,7 @@ f64.const 0.6619858980995045 f64.const 0.7887730869248576 f64.const 0.12708666920661926 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24454,7 +24556,7 @@ f64.const -0.4066039223853553 f64.const 0.9184692397007294 f64.const -0.26120713353157043 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24468,7 +24570,7 @@ f64.const 0.5617597462207241 f64.const 0.8463190467415896 f64.const -0.302586168050766 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24482,7 +24584,7 @@ f64.const 0.7741522965913037 f64.const 0.7150139289952383 f64.const -0.08537746220827103 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24496,7 +24598,7 @@ f64.const -0.6787637026394024 f64.const 0.7783494994757447 f64.const 0.30890750885009766 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24538,7 +24640,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_cos i32.eqz if @@ -24549,10 +24651,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_cos i32.eqz if @@ -24580,7 +24683,7 @@ f64.const 1 f64.const 0.5403023058681398 f64.const 0.4288286566734314 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24594,7 +24697,7 @@ f64.const 2 f64.const -0.4161468365471424 f64.const -0.35859397053718567 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24608,7 +24711,7 @@ f64.const 3 f64.const -0.9899924966004454 f64.const 0.3788451552391052 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24622,7 +24725,7 @@ f64.const 4 f64.const -0.6536436208636119 f64.const -0.23280560970306396 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24636,7 +24739,7 @@ f64.const 5 f64.const 0.28366218546322625 f64.const -0.3277357816696167 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24650,7 +24753,7 @@ f64.const 0.1 f64.const 0.9950041652780258 f64.const 0.49558526277542114 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24664,7 +24767,7 @@ f64.const 0.2 f64.const 0.9800665778412416 f64.const -0.02407640963792801 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24678,7 +24781,7 @@ f64.const 0.3 f64.const 0.955336489125606 f64.const -0.37772229313850403 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24692,7 +24795,7 @@ f64.const 0.4 f64.const 0.9210609940028851 f64.const 0.25818485021591187 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24706,7 +24809,7 @@ f64.const 0.5 f64.const 0.8775825618903728 f64.const 0.3839152157306671 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24720,7 +24823,7 @@ f64.const 2.3641409746639015e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24734,7 +24837,7 @@ f64.const 1.1820704873319507e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24748,7 +24851,7 @@ f64.const 5e-324 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24762,7 +24865,7 @@ f64.const -5e-324 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24776,7 +24879,7 @@ f64.const -3.14 f64.const -0.9999987317275395 f64.const 0.3855516016483307 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24790,7 +24893,7 @@ f64.const 8988465674311579538646525e283 f64.const -0.826369834614148 f64.const -0.3695965111255646 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24804,7 +24907,7 @@ f64.const 1797693134862315708145274e284 f64.const -0.9999876894265599 f64.const 0.23448343575000763 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24818,7 +24921,7 @@ f64.const -8988465674311579538646525e283 f64.const -0.826369834614148 f64.const -0.3695965111255646 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24832,7 +24935,7 @@ f64.const 3.14 f64.const -0.9999987317275395 f64.const 0.3855516016483307 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24846,7 +24949,7 @@ f64.const 3.1415 f64.const -0.9999999957076562 f64.const -0.30608975887298584 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24860,7 +24963,7 @@ f64.const 3.141592 f64.const -0.9999999999997864 f64.const 0.15403328835964203 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24874,7 +24977,7 @@ f64.const 3.14159265 f64.const -1 f64.const -0.02901807427406311 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24888,7 +24991,7 @@ f64.const 3.1415926535 f64.const -1 f64.const -1.8155848010792397e-05 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24902,7 +25005,7 @@ f64.const 3.141592653589 f64.const -1 f64.const -1.4169914130945926e-09 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24916,7 +25019,7 @@ f64.const 3.14159265358979 f64.const -1 f64.const -2.350864897985184e-14 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24930,7 +25033,7 @@ f64.const 3.141592653589793 f64.const -1 f64.const -3.377158741883318e-17 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24944,7 +25047,7 @@ f64.const 1.57 f64.const 7.963267107332633e-04 f64.const 0.2968159317970276 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24958,7 +25061,7 @@ f64.const 1.570796 f64.const 3.2679489653813835e-07 f64.const -0.32570895552635193 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24972,7 +25075,7 @@ f64.const 1.5707963267 f64.const 9.489659630678013e-11 f64.const -0.27245646715164185 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -24986,7 +25089,7 @@ f64.const 1.57079632679489 f64.const 6.722570487708307e-15 f64.const -0.10747683793306351 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25000,7 +25103,7 @@ f64.const 1.5707963267948966 f64.const 6.123233995736766e-17 f64.const 0.12148229777812958 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25014,7 +25117,7 @@ f64.const 0.6700635199486106 f64.const 0.7837822193016158 f64.const -0.07278502732515335 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25028,7 +25131,7 @@ f64.const 0.5343890189437553 f64.const 0.8605799719039517 f64.const -0.48434028029441833 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25042,7 +25145,7 @@ f64.const 0.43999702754890085 f64.const 0.9047529293001976 f64.const 0.029777472838759422 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25056,7 +25159,7 @@ f64.const 0.9902840844687313 f64.const 0.5484523364480768 f64.const 0.19765280187129974 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25070,7 +25173,7 @@ f64.const 0.45381447534338915 f64.const 0.8987813902263783 f64.const -0.017724866047501564 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25084,7 +25187,7 @@ f64.const 0.4609888813583589 f64.const 0.8956130474713057 f64.const 0.36449819803237915 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25098,7 +25201,7 @@ f64.const 0.9285434097956422 f64.const 0.5990009794292984 f64.const -0.2899416387081146 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25112,7 +25215,7 @@ f64.const 0.9109092124488352 f64.const 0.6130276692774378 f64.const -0.49353134632110596 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25126,7 +25229,7 @@ f64.const 0.8328600650359556 f64.const 0.6727624710046357 f64.const -0.36606088280677795 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25140,7 +25243,7 @@ f64.const 0.9536201252203433 f64.const 0.5787346183487084 f64.const -0.17089833319187164 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25154,7 +25257,7 @@ f64.const 0.8726590065457699 f64.const 0.6427919144259047 f64.const -0.2744986116886139 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25168,7 +25271,7 @@ f64.const 0.18100447535968447 f64.const 0.9836633656884893 f64.const 3.0195272993296385e-03 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25182,7 +25285,7 @@ f64.const 2.356194490349839 f64.const -0.7071067812979126 f64.const -0.48278746008872986 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25196,7 +25299,7 @@ f64.const 2.356194490372272 f64.const -0.7071067813137752 f64.const -0.4866050183773041 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25210,7 +25313,7 @@ f64.const 2.3561944902251115 f64.const -0.707106781209717 f64.const -0.3533952236175537 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25224,7 +25327,7 @@ f64.const 2.3561944903149996 f64.const -0.7071067812732775 f64.const -0.41911986470222473 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25238,7 +25341,7 @@ f64.const 2.3561944903603527 f64.const -0.707106781305347 f64.const -0.4706200063228607 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25252,7 +25355,7 @@ f64.const 2.3561944903826197 f64.const -0.7071067813210922 f64.const -0.30618351697921753 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25266,7 +25369,7 @@ f64.const 2.356194490371803 f64.const -0.7071067813134436 f64.const -0.30564820766448975 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25280,7 +25383,7 @@ f64.const 2.356194490399931 f64.const -0.7071067813333329 f64.const -0.38845571875572205 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25294,7 +25397,7 @@ f64.const 2.356194490260191 f64.const -0.707106781234522 f64.const -0.23796851933002472 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25308,7 +25411,7 @@ f64.const 2.3561944904043153 f64.const -0.7071067813364332 f64.const -0.3274589478969574 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25322,7 +25425,7 @@ f64.const 2.0943951024759446 f64.const -0.5000000000716629 f64.const -0.41711342334747314 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25336,7 +25439,7 @@ f64.const 2.09439510243324 f64.const -0.5000000000346797 f64.const -0.3566164970397949 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25350,7 +25453,7 @@ f64.const 2.0943951025133885 f64.const -0.5000000001040902 f64.const -0.2253485918045044 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25364,7 +25467,7 @@ f64.const 2.0943951025466707 f64.const -0.5000000001329135 f64.const -0.12982259690761566 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25378,7 +25481,7 @@ f64.const 2.094395102413896 f64.const -0.5000000000179272 f64.const -0.15886764228343964 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25392,7 +25495,7 @@ f64.const 2.0943951024223404 f64.const -0.5000000000252403 f64.const -0.266656756401062 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25406,7 +25509,7 @@ f64.const 2.0943951024960477 f64.const -0.5000000000890726 f64.const -0.4652077853679657 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25420,7 +25523,7 @@ f64.const 2.0943951025173315 f64.const -0.500000000107505 f64.const -0.46710994839668274 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25434,7 +25537,7 @@ f64.const 2.094395102405924 f64.const -0.5000000000110234 f64.const -0.2469603717327118 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25448,7 +25551,7 @@ f64.const 2.094395102428558 f64.const -0.500000000030625 f64.const -0.3799441158771515 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25462,7 +25565,7 @@ f64.const 8.513210770864056 f64.const -0.6125076939987759 f64.const 0.4989966154098511 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25476,7 +25579,7 @@ f64.const 6.802886129801017 f64.const 0.8679677961345452 f64.const 0.4972165524959564 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25490,7 +25593,7 @@ f64.const 9.171925393086408 f64.const -0.9682027440424544 f64.const -0.49827584624290466 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25504,7 +25607,7 @@ f64.const 8.854690112888573 f64.const -0.8418535663818527 f64.const 0.4974979758262634 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25518,7 +25621,7 @@ f64.const 9.213510813859608 f64.const -0.9777659802838506 f64.const -0.4995604455471039 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25532,7 +25635,7 @@ f64.const 7.782449081542151 f64.const 0.07147156381293339 f64.const 0.49858126044273376 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25546,7 +25649,7 @@ f64.const 7.500261332273616 f64.const 0.34639017633458113 f64.const -0.4996210038661957 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25560,7 +25663,7 @@ f64.const 9.121739418731588 f64.const -0.9544341297541811 f64.const 0.4982815086841583 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25574,7 +25677,7 @@ f64.const 6.784954020476316 f64.const 0.8767332233166646 f64.const -0.4988083839416504 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25588,7 +25691,7 @@ f64.const 8.770846542666664 f64.const -0.7936984117400705 f64.const 0.4999682903289795 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25602,7 +25705,7 @@ f64.const 9.313225746154785e-10 f64.const 1 f64.const 0.001953125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25616,7 +25719,7 @@ f64.const -9.313225746154785e-10 f64.const 1 f64.const 0.001953125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25630,7 +25733,7 @@ f64.const 2.2250738585072014e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25644,7 +25747,7 @@ f64.const -2.2250738585072014e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25658,7 +25761,7 @@ f64.const 5e-324 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25672,7 +25775,7 @@ f64.const -5e-324 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25714,7 +25817,7 @@ f64.const 1e-323 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25728,7 +25831,7 @@ f64.const 4.4e-323 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25742,7 +25845,7 @@ f64.const 5.562684646268003e-309 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25756,7 +25859,7 @@ f64.const 1.1125369292536007e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25770,7 +25873,7 @@ f64.const 2.2250738585072004e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25784,7 +25887,7 @@ f64.const 2.225073858507201e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25798,7 +25901,7 @@ f64.const 2.225073858507202e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25812,7 +25915,7 @@ f64.const 2.2250738585072024e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25826,7 +25929,7 @@ f64.const 4.4501477170144003e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25840,7 +25943,7 @@ f64.const 4.450147717014403e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25854,7 +25957,7 @@ f64.const 4.450147717014406e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25868,7 +25971,7 @@ f64.const 8.900295434028806e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25882,7 +25985,7 @@ f64.const 7.450580596923828e-09 f64.const 1 f64.const 0.125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25896,7 +25999,7 @@ f64.const 1.4901161193847656e-08 f64.const 0.9999999999999999 f64.const -1.850372590034581e-17 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25910,7 +26013,7 @@ f64.const 4.470348358154297e-08 f64.const 0.999999999999999 f64.const -1.4988010832439613e-15 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25924,7 +26027,7 @@ f64.const -1e-323 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25938,7 +26041,7 @@ f64.const -4.4e-323 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25952,7 +26055,7 @@ f64.const -5.562684646268003e-309 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25966,7 +26069,7 @@ f64.const -1.1125369292536007e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25980,7 +26083,7 @@ f64.const -2.2250738585072004e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -25994,7 +26097,7 @@ f64.const -2.225073858507201e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -26008,7 +26111,7 @@ f64.const -2.225073858507202e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -26022,7 +26125,7 @@ f64.const -2.2250738585072024e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -26036,7 +26139,7 @@ f64.const -4.4501477170144003e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -26050,7 +26153,7 @@ f64.const -4.450147717014403e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -26064,7 +26167,7 @@ f64.const -4.450147717014406e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -26078,7 +26181,7 @@ f64.const -8.900295434028806e-308 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -26092,7 +26195,7 @@ f64.const -7.450580596923828e-09 f64.const 1 f64.const 0.125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -26106,7 +26209,7 @@ f64.const -1.4901161193847656e-08 f64.const 0.9999999999999999 f64.const -1.850372590034581e-17 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -26120,7 +26223,7 @@ f64.const -4.470348358154297e-08 f64.const 0.999999999999999 f64.const -1.4988010832439613e-15 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cos i32.eqz if @@ -26131,9 +26234,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/math/NativeMath.cos - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/bindings/Math/cos f64.eq i32.eqz @@ -26145,9 +26252,17 @@ call $~lib/builtins/abort unreachable end - f64.const 3.141592653589793 + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div call $~lib/math/NativeMath.cos - f64.const 3.141592653589793 + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div call $~lib/bindings/Math/cos f64.eq i32.eqz @@ -26159,9 +26274,13 @@ call $~lib/builtins/abort unreachable end - f64.const 3141592653589793231804887e66 + f64.const 1.e+90 + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos - f64.const 3141592653589793231804887e66 + f64.const 1.e+90 + global.get $std/math/kPI + f64.mul call $~lib/bindings/Math/cos f64.eq i32.eqz @@ -26330,7 +26449,11 @@ unreachable end f64.const 0.7071067811865474 - f64.const 5.497787143782138 + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos f64.eq i32.eqz @@ -26343,7 +26466,11 @@ unreachable end f64.const 0.7071067811865477 - f64.const 7.0685834705770345 + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos f64.eq i32.eqz @@ -26356,7 +26483,11 @@ unreachable end f64.const -0.7071067811865467 - f64.const 8.63937979737193 + f64.const 11 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos f64.eq i32.eqz @@ -26369,7 +26500,11 @@ unreachable end f64.const -0.7071067811865471 - f64.const 10.210176124166829 + f64.const 13 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos f64.eq i32.eqz @@ -26395,7 +26530,11 @@ unreachable end f64.const -3.435757038074824e-12 - f64.const 1647097.7583689587 + f64.const 1048575 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.cos f64.eq i32.eqz @@ -26410,7 +26549,7 @@ f32.const -8.066848754882812 f32.const -0.21126316487789154 f32.const 0.48328569531440735 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26424,7 +26563,7 @@ f32.const 4.345239639282227 f32.const -0.3589562177658081 f32.const 0.042505208402872086 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26438,7 +26577,7 @@ f32.const -8.381433486938477 f32.const -0.5033331513404846 f32.const -0.1386195719242096 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26452,7 +26591,7 @@ f32.const -6.531673431396484 f32.const 0.9692853689193726 f32.const 0.1786951720714569 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26466,7 +26605,7 @@ f32.const 9.267057418823242 f32.const -0.9875878691673279 f32.const 0.1389600932598114 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26480,7 +26619,7 @@ f32.const 0.6619858741760254 f32.const 0.7887731194496155 f32.const 0.2989593744277954 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26494,7 +26633,7 @@ f32.const -0.40660393238067627 f32.const 0.918469250202179 f32.const 0.24250665307044983 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26508,7 +26647,7 @@ f32.const 0.5617597699165344 f32.const 0.8463190197944641 f32.const -0.24033240973949432 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26522,7 +26661,7 @@ f32.const 0.7741522789001465 f32.const 0.7150139212608337 f32.const -0.3372635245323181 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26536,7 +26675,7 @@ f32.const -0.6787636876106262 f32.const 0.7783495187759399 f32.const 0.16550153493881226 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26578,7 +26717,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_cosf i32.eqz if @@ -26589,10 +26728,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_cosf i32.eqz if @@ -26620,7 +26760,7 @@ f32.const 1.862645149230957e-09 f32.const 1 f32.const 1.4551915228366852e-11 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26634,7 +26774,7 @@ f32.const -1.862645149230957e-09 f32.const 1 f32.const 1.4551915228366852e-11 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26648,7 +26788,7 @@ f32.const 1.1754943508222875e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26662,7 +26802,7 @@ f32.const -1.1754943508222875e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26676,7 +26816,7 @@ f32.const 1.401298464324817e-45 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26690,7 +26830,7 @@ f32.const -1.401298464324817e-45 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26704,7 +26844,7 @@ f32.const 2.802596928649634e-45 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26718,7 +26858,7 @@ f32.const 1.2611686178923354e-44 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26732,7 +26872,7 @@ f32.const 2.938735877055719e-39 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26746,7 +26886,7 @@ f32.const 5.877471754111438e-39 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26760,7 +26900,7 @@ f32.const 1.1754940705625946e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26774,7 +26914,7 @@ f32.const 1.1754942106924411e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26788,7 +26928,7 @@ f32.const 1.175494490952134e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26802,7 +26942,7 @@ f32.const 1.1754946310819804e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26816,7 +26956,7 @@ f32.const 2.3509880009953429e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26830,7 +26970,7 @@ f32.const 2.350988701644575e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26844,7 +26984,7 @@ f32.const 2.3509895424236536e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26858,7 +26998,7 @@ f32.const 4.70197740328915e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26872,7 +27012,7 @@ f32.const 7.450580596923828e-09 f32.const 1 f32.const 2.3283064365386963e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26886,7 +27026,7 @@ f32.const 0.000244140625 f32.const 1 f32.const 0.25 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26900,7 +27040,7 @@ f32.const 0.00048828125 f32.const 0.9999998807907104 f32.const -3.973643103449831e-08 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26914,7 +27054,7 @@ f32.const 0.0009765625 f32.const 0.9999995231628418 f32.const -6.357828397085541e-07 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26928,7 +27068,7 @@ f32.const -2.802596928649634e-45 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26942,7 +27082,7 @@ f32.const -1.2611686178923354e-44 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26956,7 +27096,7 @@ f32.const -2.938735877055719e-39 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26970,7 +27110,7 @@ f32.const -5.877471754111438e-39 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26984,7 +27124,7 @@ f32.const -1.1754940705625946e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -26998,7 +27138,7 @@ f32.const -1.1754942106924411e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27012,7 +27152,7 @@ f32.const -1.175494490952134e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27026,7 +27166,7 @@ f32.const -1.1754946310819804e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27040,7 +27180,7 @@ f32.const -2.3509880009953429e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27054,7 +27194,7 @@ f32.const -2.350988701644575e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27068,7 +27208,7 @@ f32.const -2.3509895424236536e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27082,7 +27222,7 @@ f32.const -4.70197740328915e-38 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27096,7 +27236,7 @@ f32.const -7.450580596923828e-09 f32.const 1 f32.const 2.3283064365386963e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27110,7 +27250,7 @@ f32.const -0.000244140625 f32.const 1 f32.const 0.25 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27124,7 +27264,7 @@ f32.const -0.00048828125 f32.const 0.9999998807907104 f32.const -3.973643103449831e-08 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27138,7 +27278,7 @@ f32.const -0.0009765625 f32.const 0.9999995231628418 f32.const -6.357828397085541e-07 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27152,7 +27292,7 @@ f32.const 255.99993896484375 f32.const -0.03985174745321274 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27166,7 +27306,7 @@ f32.const 5033165 f32.const 0.8471871614456177 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27180,7 +27320,7 @@ f32.const 421657440 f32.const 0.6728929281234741 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27194,7 +27334,7 @@ f32.const 2147483392 f32.const 0.9610780477523804 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27208,7 +27348,7 @@ f32.const 68719476736 f32.const 0.1694190502166748 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27222,7 +27362,7 @@ f32.const 549755813888 f32.const 0.20735950767993927 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27233,10 +27373,10 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE f32.const 0.8530210256576538 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27250,7 +27390,7 @@ f32.const -255.99993896484375 f32.const -0.03985174745321274 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27264,7 +27404,7 @@ f32.const -5033165 f32.const 0.8471871614456177 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27278,7 +27418,7 @@ f32.const -421657440 f32.const 0.6728929281234741 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27292,7 +27432,7 @@ f32.const -2147483392 f32.const 0.9610780477523804 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27306,7 +27446,7 @@ f32.const -68719476736 f32.const 0.1694190502166748 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27320,7 +27460,7 @@ f32.const -549755813888 f32.const 0.20735950767993927 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27331,10 +27471,11 @@ call $~lib/builtins/abort unreachable end - f32.const -3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg f32.const 0.8530210256576538 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosf i32.eqz if @@ -27348,7 +27489,7 @@ f64.const -8.06684839057968 f64.const 1593.5209938862329 f64.const -0.38098856806755066 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27362,7 +27503,7 @@ f64.const 4.345239849338305 f64.const 38.56174928426729 f64.const -0.2712278366088867 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27376,7 +27517,7 @@ f64.const -8.38143342755525 f64.const 2182.630979595893 f64.const 0.0817827582359314 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27390,7 +27531,7 @@ f64.const -6.531673581913484 f64.const 343.273849250879 f64.const -0.429940402507782 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27404,7 +27545,7 @@ f64.const 9.267056966972586 f64.const 5291.779170005587 f64.const -0.1592995822429657 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27418,7 +27559,7 @@ f64.const 0.6619858980995045 f64.const 1.2272321957342842 f64.const 0.23280741274356842 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27432,7 +27573,7 @@ f64.const -0.4066039223853553 f64.const 1.083808541871197 f64.const -0.3960916996002197 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27446,7 +27587,7 @@ f64.const 0.5617597462207241 f64.const 1.1619803583175077 f64.const 0.37748390436172485 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27460,7 +27601,7 @@ f64.const 0.7741522965913037 f64.const 1.3149236876276706 f64.const 0.43587008118629456 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27474,7 +27615,7 @@ f64.const -0.6787637026394024 f64.const 1.2393413245934533 f64.const 0.10201606154441833 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_cosh i32.eqz if @@ -27527,7 +27668,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -27558,7 +27700,7 @@ f32.const -8.066848754882812 f32.const 1593.5216064453125 f32.const 0.26242581009864807 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27572,7 +27714,7 @@ f32.const 4.345239639282227 f32.const 38.56174087524414 f32.const -0.08168885856866837 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27586,7 +27728,7 @@ f32.const -8.381433486938477 f32.const 2182.631103515625 f32.const -0.02331414446234703 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27600,7 +27742,7 @@ f32.const -6.531673431396484 f32.const 343.2738037109375 f32.const 0.20081493258476257 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27614,7 +27756,7 @@ f32.const 9.267057418823242 f32.const 5291.78173828125 f32.const 0.36286723613739014 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27628,7 +27770,7 @@ f32.const 0.6619858741760254 f32.const 1.2272322177886963 f32.const 0.32777416706085205 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27642,7 +27784,7 @@ f32.const -0.40660393238067627 f32.const 1.0838085412979126 f32.const -0.039848703891038895 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27656,7 +27798,7 @@ f32.const 0.5617597699165344 f32.const 1.161980390548706 f32.const 0.15274477005004883 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27670,7 +27812,7 @@ f32.const 0.7741522789001465 f32.const 1.314923644065857 f32.const -0.2387111485004425 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27684,7 +27826,7 @@ f32.const -0.6787636876106262 f32.const 1.2393412590026855 f32.const -0.45791932940483093 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_coshf i32.eqz if @@ -27737,7 +27879,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -27768,7 +27911,7 @@ f64.const -8.06684839057968 f64.const 3.137706068161745e-04 f64.const -0.2599197328090668 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27782,7 +27925,7 @@ f64.const 4.345239849338305 f64.const 77.11053017112141 f64.const -0.02792675793170929 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27796,7 +27939,7 @@ f64.const -8.38143342755525 f64.const 2.290813384916323e-04 f64.const -0.24974334239959717 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27810,7 +27953,7 @@ f64.const -6.531673581913484 f64.const 1.4565661260931588e-03 f64.const -0.4816822409629822 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27824,7 +27967,7 @@ f64.const 9.267056966972586 f64.const 10583.558245524993 f64.const 0.17696762084960938 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27838,7 +27981,7 @@ f64.const 0.6619858980995045 f64.const 1.9386384525571998 f64.const -0.4964246451854706 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27852,7 +27995,7 @@ f64.const -0.4066039223853553 f64.const 0.6659078892838025 f64.const -0.10608318448066711 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27866,7 +28009,7 @@ f64.const 0.5617597462207241 f64.const 1.7537559518626311 f64.const -0.39162111282348633 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27880,7 +28023,7 @@ f64.const 0.7741522965913037 f64.const 2.1687528885129246 f64.const -0.2996125817298889 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27894,7 +28037,7 @@ f64.const -0.6787637026394024 f64.const 0.5072437089402843 f64.const 0.47261738777160645 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27936,7 +28079,7 @@ f64.const 1 f64.const 2.718281828459045 f64.const -0.3255307376384735 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27950,7 +28093,7 @@ f64.const -1 f64.const 0.36787944117144233 f64.const 0.22389651834964752 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -27975,7 +28118,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -28006,7 +28150,7 @@ f64.const 1.0397214889526365 f64.const 2.828429155876411 f64.const 0.18803080916404724 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28020,7 +28164,7 @@ f64.const -1.0397214889526365 f64.const 0.35355313670217847 f64.const 0.2527272403240204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28034,7 +28178,7 @@ f64.const 1.0397210121154785 f64.const 2.8284278071766122 f64.const -0.4184139370918274 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28048,7 +28192,7 @@ f64.const 1.0397214889526367 f64.const 2.8284291558764116 f64.const -0.22618377208709717 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28059,10 +28203,10 @@ call $~lib/builtins/abort unreachable end - f64.const 5e-324 + global.get $~lib/builtins/f64.MIN_VALUE f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28073,10 +28217,11 @@ call $~lib/builtins/abort unreachable end - f64.const -5e-324 + global.get $~lib/builtins/f64.MIN_VALUE + f64.neg f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28087,10 +28232,13 @@ call $~lib/builtins/abort unreachable end - f64.const 709.782712893384 - f64.const 1797693134862273196746681e284 - f64.const -0.10568465292453766 - i32.const 1 + i64.const 4649454530587146735 + f64.reinterpret_i64 + i64.const 9218868437227405098 + f64.reinterpret_i64 + i64.const -4631092234375135232 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28101,10 +28249,13 @@ call $~lib/builtins/abort unreachable end - f64.const 709.7827128933841 + i64.const 4649454530587146736 + f64.reinterpret_i64 f64.const inf f64.const 0 - i32.const 17 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or call $std/math/test_exp i32.eqz if @@ -28115,10 +28266,14 @@ call $~lib/builtins/abort unreachable end - f64.const -745.1332191019411 - f64.const 5e-324 - f64.const 0.5 - i32.const 9 + i64.const -4573606559926636463 + f64.reinterpret_i64 + global.get $~lib/builtins/f64.MIN_VALUE + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp i32.eqz if @@ -28129,10 +28284,14 @@ call $~lib/builtins/abort unreachable end - f64.const -745.1332191019412 + i64.const -4573606559926636462 + f64.reinterpret_i64 f64.const 0 - f64.const -0.5 - i32.const 9 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp i32.eqz if @@ -28143,10 +28302,13 @@ call $~lib/builtins/abort unreachable end - f64.const -708.3964185322641 - f64.const 2.2250738585072626e-308 - f64.const 0.26172348856925964 - i32.const 1 + i64.const -4573929700241785646 + f64.reinterpret_i64 + i64.const 4503599627370620 + f64.reinterpret_i64 + i64.const 4598386411140284416 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28157,10 +28319,15 @@ call $~lib/builtins/abort unreachable end - f64.const -708.3964185322642 - f64.const 2.2250738585070097e-308 - f64.const 2.2250738585070097e-308 - i32.const 9 + i64.const -4573929700241785645 + f64.reinterpret_i64 + i64.const 4503599627370108 + f64.reinterpret_i64 + i64.const 4503599627370108 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp i32.eqz if @@ -28171,10 +28338,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.5006933289508785 - f64.const 1.6498647732549399 - f64.const 0.5 - i32.const 1 + i64.const 4602685064124656555 + f64.reinterpret_i64 + i64.const 4610109149550689567 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28185,10 +28355,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.628493326460252 - f64.const 1.8747837631658781 - f64.const 0.5 - i32.const 1 + i64.const 4603836184166978885 + f64.reinterpret_i64 + i64.const 4611122094629841017 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28199,10 +28372,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.837522455340574 - f64.const 2.3106351774748006 - f64.const -0.5 - i32.const 1 + i64.const 4605718951180848880 + f64.reinterpret_i64 + i64.const 4612385506662149744 + f64.reinterpret_i64 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28213,10 +28389,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.8504909932810999 - f64.const 2.3407958848710777 - f64.const 0.5 - i32.const 1 + i64.const 4605835761386121865 + f64.reinterpret_i64 + i64.const 4612453422537445296 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28227,10 +28406,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.6270060846924657 - f64.const 5.088617001442459 - f64.const 0.5 - i32.const 1 + i64.const 4610006203169397430 + f64.reinterpret_i64 + i64.const 4617415291835269761 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28241,10 +28423,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.6744336219614115 - f64.const 5.335772228886831 - f64.const 0.5 - i32.const 1 + i64.const 4610219797808568955 + f64.reinterpret_i64 + i64.const 4617693563882825047 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28255,10 +28440,13 @@ call $~lib/builtins/abort unreachable end - f64.const 6.657914718791208 - f64.const 778.924964819056 - f64.const 0.5 - i32.const 1 + i64.const 4619182163989041060 + f64.reinterpret_i64 + i64.const 4650062712266849886 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28269,10 +28457,13 @@ call $~lib/builtins/abort unreachable end - f64.const 11.022872793631722 - f64.const 61259.41271820104 - f64.const 0.5 - i32.const 1 + i64.const 4622394943780502425 + f64.reinterpret_i64 + i64.const 4678652243157503230 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28283,10 +28474,13 @@ call $~lib/builtins/abort unreachable end - f64.const 11.411195701885317 - f64.const 90327.36165653409 - f64.const 0.5 - i32.const 1 + i64.const 4622613550143616215 + f64.reinterpret_i64 + i64.const 4680943662238555301 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28297,10 +28491,13 @@ call $~lib/builtins/abort unreachable end - f64.const 11.794490387560606 - f64.const 132520.20290772576 - f64.const 0.5 - i32.const 1 + i64.const 4622829325869063755 + f64.reinterpret_i64 + i64.const 4683793372338329074 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28311,10 +28508,13 @@ call $~lib/builtins/abort unreachable end - f64.const 412.83872756953286 - f64.const 1965989977109266413433084e155 - f64.const 0.5 - i32.const 1 + i64.const 4645970351893354075 + f64.reinterpret_i64 + i64.const 7289148599681560140 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28325,10 +28525,13 @@ call $~lib/builtins/abort unreachable end - f64.const 510.87569028483415 - f64.const 7421526272656495968225491e197 - f64.const -0.5 - i32.const 1 + i64.const 4647695036380671130 + f64.reinterpret_i64 + i64.const 7926454981994343700 + f64.reinterpret_i64 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28339,10 +28542,13 @@ call $~lib/builtins/abort unreachable end - f64.const -2.6589841439772853e-14 - f64.const 0.9999999999999735 - f64.const 0.5 - i32.const 1 + i64.const -4819432143425896336 + f64.reinterpret_i64 + i64.const 4607182418800017169 + f64.reinterpret_i64 + i64.const 4602678819172646912 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28353,10 +28559,13 @@ call $~lib/builtins/abort unreachable end - f64.const -2.7144952952085447e-14 - f64.const 0.9999999999999728 - f64.const -0.5 - i32.const 1 + i64.const -4819256221565452171 + f64.reinterpret_i64 + i64.const 4607182418800017163 + f64.reinterpret_i64 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp i32.eqz if @@ -28370,7 +28579,7 @@ f32.const -8.066848754882812 f32.const 3.1377049162983894e-04 f32.const -0.030193336308002472 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28384,7 +28593,7 @@ f32.const 4.345239639282227 f32.const 77.11051177978516 f32.const -0.2875460684299469 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28398,7 +28607,7 @@ f32.const -8.381433486938477 f32.const 2.2908132814336568e-04 f32.const 0.2237040400505066 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28412,7 +28621,7 @@ f32.const -6.531673431396484 f32.const 1.4565663877874613e-03 f32.const 0.36469703912734985 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28426,7 +28635,7 @@ f32.const 9.267057418823242 f32.const 10583.5634765625 f32.const 0.45962104201316833 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28440,7 +28649,7 @@ f32.const 0.6619858741760254 f32.const 1.93863844871521 f32.const 0.3568260967731476 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28454,7 +28663,7 @@ f32.const -0.40660393238067627 f32.const 0.6659078598022461 f32.const -0.38294991850852966 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28468,7 +28677,7 @@ f32.const 0.5617597699165344 f32.const 1.753756046295166 f32.const 0.44355490803718567 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28482,7 +28691,7 @@ f32.const 0.7741522789001465 f32.const 2.168752908706665 f32.const 0.24562469124794006 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28496,7 +28705,7 @@ f32.const -0.6787636876106262 f32.const 0.5072436928749084 f32.const -0.3974292278289795 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28538,7 +28747,7 @@ f32.const 1 f32.const 2.7182817459106445 f32.const -0.3462330996990204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28552,7 +28761,7 @@ f32.const -1 f32.const 0.3678794503211975 f32.const 0.3070148527622223 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28577,7 +28786,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -28608,7 +28818,7 @@ f32.const 88.72283172607422 f32.const 340279851902147610656242e15 f32.const -0.09067153930664062 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28622,7 +28832,9 @@ f32.const 88.72283935546875 f32.const inf f32.const 0 - i32.const 17 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or call $std/math/test_expf i32.eqz if @@ -28636,7 +28848,9 @@ f32.const -103.97207641601562 f32.const 1.401298464324817e-45 f32.const 0.49999967217445374 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_expf i32.eqz if @@ -28650,7 +28864,9 @@ f32.const -103.97208404541016 f32.const 0 f32.const -0.49999651312828064 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_expf i32.eqz if @@ -28664,7 +28880,7 @@ f32.const 0.3465735614299774 f32.const 1.4142135381698608 f32.const 0.13922421634197235 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28678,7 +28894,7 @@ f32.const 0.3465735912322998 f32.const 1.4142135381698608 f32.const -0.21432916820049286 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28692,7 +28908,7 @@ f32.const 0.3465736210346222 f32.const 1.4142136573791504 f32.const 0.43211743235588074 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expf i32.eqz if @@ -28706,7 +28922,7 @@ f64.const -8.06684839057968 f64.const -0.9996862293931839 f64.const -0.2760058343410492 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28720,7 +28936,7 @@ f64.const 4.345239849338305 f64.const 76.11053017112141 f64.const -0.02792675793170929 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28734,7 +28950,7 @@ f64.const -8.38143342755525 f64.const -0.9997709186615084 f64.const 0.10052496194839478 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28748,7 +28964,7 @@ f64.const -6.531673581913484 f64.const -0.9985434338739069 f64.const -0.27437829971313477 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28762,7 +28978,7 @@ f64.const 9.267056966972586 f64.const 10582.558245524993 f64.const 0.17696762084960938 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28776,7 +28992,7 @@ f64.const 0.6619858980995045 f64.const 0.9386384525571999 f64.const 0.007150684483349323 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28790,7 +29006,7 @@ f64.const -0.4066039223853553 f64.const -0.3340921107161975 f64.const -0.21216636896133423 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28804,7 +29020,7 @@ f64.const 0.5617597462207241 f64.const 0.7537559518626312 f64.const 0.21675777435302734 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28818,7 +29034,7 @@ f64.const 0.7741522965913037 f64.const 1.1687528885129248 f64.const 0.4007748067378998 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28832,7 +29048,7 @@ f64.const -0.6787637026394024 f64.const -0.4927562910597158 f64.const -0.05476519837975502 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28874,7 +29090,7 @@ f64.const 1 f64.const 1.7182818284590453 f64.const 0.348938524723053 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28888,7 +29104,7 @@ f64.const -1 f64.const -0.6321205588285577 f64.const 0.11194825917482376 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1 i32.eqz if @@ -28913,7 +29129,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -28944,7 +29161,9 @@ f64.const 2.225073858507201e-308 f64.const 2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_expm1 i32.eqz if @@ -28958,7 +29177,9 @@ f64.const -2.225073858507201e-308 f64.const -2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_expm1 i32.eqz if @@ -28972,7 +29193,7 @@ f32.const -8.066848754882812 f32.const -0.9996862411499023 f32.const -0.19532723724842072 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -28986,7 +29207,7 @@ f32.const 4.345239639282227 f32.const 76.11051177978516 f32.const -0.2875460684299469 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -29000,7 +29221,7 @@ f32.const -8.381433486938477 f32.const -0.9997709393501282 f32.const -0.34686920046806335 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -29014,7 +29235,7 @@ f32.const -6.531673431396484 f32.const -0.9985434412956238 f32.const -0.1281939446926117 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -29028,7 +29249,7 @@ f32.const 9.267057418823242 f32.const 10582.5634765625 f32.const 0.45962104201316833 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -29042,7 +29263,7 @@ f32.const 0.6619858741760254 f32.const 0.9386383891105652 f32.const -0.28634780645370483 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -29056,7 +29277,7 @@ f32.const -0.40660393238067627 f32.const -0.3340921103954315 f32.const 0.23410017788410187 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -29070,7 +29291,7 @@ f32.const 0.5617597699165344 f32.const 0.7537559866905212 f32.const -0.11289017647504807 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -29084,7 +29305,7 @@ f32.const 0.7741522789001465 f32.const 1.168752908706665 f32.const 0.4912493824958801 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -29098,7 +29319,7 @@ f32.const -0.6787636876106262 f32.const -0.49275627732276917 f32.const 0.20514154434204102 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -29140,7 +29361,7 @@ f32.const 1 f32.const 1.718281865119934 f32.const 0.3075338304042816 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -29154,7 +29375,7 @@ f32.const -1 f32.const -0.6321205496788025 f32.const 0.15350742638111115 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_expm1f i32.eqz if @@ -29179,7 +29400,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -29207,10 +29429,13 @@ call $~lib/builtins/abort unreachable end - f64.const -8.06684839057968 - f64.const 0.003729380227666592 - f64.const 0.1281578093767166 - i32.const 1 + i64.const -4602641186874283791 + f64.reinterpret_i64 + i64.const 4570745787852977234 + f64.reinterpret_i64 + i64.const 4593785391990964224 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29221,10 +29446,13 @@ call $~lib/builtins/abort unreachable end - f64.const 4.345239849338305 - f64.const 20.32579462123892 - f64.const 0.03073759749531746 - i32.const 1 + i64.const 4616578323568966759 + f64.reinterpret_i64 + i64.const 4626414420249767698 + f64.reinterpret_i64 + i64.const 4584516730696499200 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29235,10 +29463,13 @@ call $~lib/builtins/abort unreachable end - f64.const -8.38143342755525 - f64.const 2.9987283924334954e-03 - f64.const -0.31000515818595886 - i32.const 1 + i64.const -4602464091242371353 + f64.reinterpret_i64 + i64.const 4569061019426535842 + f64.reinterpret_i64 + i64.const -4624115860477313024 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29249,10 +29480,13 @@ call $~lib/builtins/abort unreachable end - f64.const -6.531673581913484 - f64.const 0.010808622025681005 - f64.const -0.28607869148254395 - i32.const 1 + i64.const -4604332007749985084 + f64.reinterpret_i64 + i64.const 4577384368165340865 + f64.reinterpret_i64 + i64.const -4624546881383432192 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29263,10 +29497,13 @@ call $~lib/builtins/abort unreachable end - f64.const 9.267056966972586 - f64.const 616.1154770730207 - f64.const -0.08883064985275269 - i32.const 1 + i64.const 4621406507342668262 + f64.reinterpret_i64 + i64.const 4648630624867737726 + f64.reinterpret_i64 + i64.const -4632306693286395904 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29277,10 +29514,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.6619858980995045 - f64.const 1.5822591361986904 - f64.const -0.1258980929851532 - i32.const 1 + i64.const 4604137858433287319 + f64.reinterpret_i64 + i64.const 4609804680828834897 + f64.reinterpret_i64 + i64.const -4629668059727003648 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29291,10 +29531,13 @@ call $~lib/builtins/abort unreachable end - f64.const -0.4066039223853553 - f64.const 0.7543971221632684 - f64.const -0.24229088425636292 - i32.const 1 + i64.const -4622375691843501615 + f64.reinterpret_i64 + i64.const 4604970224741804156 + f64.reinterpret_i64 + i64.const -4625474567475822592 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29305,10 +29548,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.5617597462207241 - f64.const 1.4760685736993149 - f64.const 0.27173060178756714 - i32.const 1 + i64.const 4603235101512779211 + f64.reinterpret_i64 + i64.const 4609326441051132446 + f64.reinterpret_i64 + i64.const 4598566683265728512 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29319,10 +29565,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.7741522965913037 - f64.const 1.710184880131433 - f64.const -0.0205493476241827 - i32.const 1 + i64.const 4605148163534189634 + f64.reinterpret_i64 + i64.const 4610380807161541490 + f64.reinterpret_i64 + i64.const -4641791869250961408 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29333,10 +29582,13 @@ call $~lib/builtins/abort unreachable end - f64.const -0.6787637026394024 - f64.const 0.6247003734030933 - f64.const -0.31195688247680664 - i32.const 1 + i64.const -4619083057392940530 + f64.reinterpret_i64 + i64.const 4603802020283029177 + f64.reinterpret_i64 + i64.const -4624080701338157056 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29348,7 +29600,8 @@ unreachable end f64.const 0 - f64.const 1 + i64.const 4607182418800017408 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29362,7 +29615,8 @@ unreachable end f64.const 0 - f64.const 1 + i64.const 4607182418800017408 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29376,7 +29630,8 @@ unreachable end f64.const 1 - f64.const 2 + i64.const 4611686018427387904 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29390,7 +29645,8 @@ unreachable end f64.const -1 - f64.const 0.5 + i64.const 4602678819172646912 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29417,7 +29673,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -29445,10 +29702,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.998046875 - f64.const 3.9945884515638808 - f64.const 0.1476455181837082 - i32.const 1 + i64.const 4611677222334365696 + f64.reinterpret_i64 + i64.const 4616177432330998198 + f64.reinterpret_i64 + i64.const 4594487510695936000 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29459,10 +29719,13 @@ call $~lib/builtins/abort unreachable end - f64.const -1021.9 - f64.const 2.384775113731291e-308 - f64.const -0.2217157781124115 - i32.const 1 + i64.const -4571172093576400077 + f64.reinterpret_i64 + i64.const 4826838566504112 + f64.reinterpret_i64 + i64.const -4626215863798726656 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29473,8 +29736,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1022 - f64.const 2.2250738585072014e-308 + i64.const -4571171213967097856 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29487,10 +29752,15 @@ call $~lib/builtins/abort unreachable end - f64.const -1022.1 - f64.const 2.0760673185932884e-308 - f64.const 0.198451966047287 - i32.const 9 + i64.const -4571170334357795635 + f64.reinterpret_i64 + i64.const 4202007033009479 + f64.reinterpret_i64 + i64.const 4596318005893267456 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29501,8 +29771,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1023 - f64.const 1.1125369292536007e-308 + i64.const -4571162417874075648 + f64.reinterpret_i64 + i64.const 2251799813685248 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29515,10 +29787,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1023.9 - f64.const 1677307003485741635311718e284 - f64.const 0.396903932094574 - i32.const 1 + i64.const 4652217535464420147 + f64.reinterpret_i64 + i64.const 9218265252038683278 + f64.reinterpret_i64 + i64.const 4600821605520637952 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29529,10 +29804,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1024 + i64.const 4652218415073722368 + f64.reinterpret_i64 f64.const inf f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29543,10 +29821,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1024.1 + i64.const 4652218854878373478 + f64.reinterpret_i64 f64.const inf f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29557,10 +29838,13 @@ call $~lib/builtins/abort unreachable end - f64.const 3.14 - f64.const 8.815240927012887 - f64.const 0.39309585094451904 - i32.const 1 + i64.const 4614253070214989087 + f64.reinterpret_i64 + i64.const 4621152157524017948 + f64.reinterpret_i64 + i64.const 4600753005229244416 + f64.reinterpret_i64 + global.get $std/math/INEXACT call $std/math/test_exp2 i32.eqz if @@ -29571,10 +29855,15 @@ call $~lib/builtins/abort unreachable end - f64.const -1022.5 - f64.const 1.5733648139913585e-308 - f64.const -0.28231191635131836 - i32.const 9 + i64.const -4571166815920586752 + f64.reinterpret_i64 + i64.const 3184525836262886 + f64.reinterpret_i64 + i64.const -4624614737571741696 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29585,8 +29874,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1023 - f64.const 1.1125369292536007e-308 + i64.const -4571162417874075648 + f64.reinterpret_i64 + i64.const 2251799813685248 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29599,10 +29890,15 @@ call $~lib/builtins/abort unreachable end - f64.const -1023.5 - f64.const 7.866824069956793e-309 - f64.const -0.14115595817565918 - i32.const 9 + i64.const -4571158019827564544 + f64.reinterpret_i64 + i64.const 1592262918131443 + f64.reinterpret_i64 + i64.const -4629118337199112192 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29613,8 +29909,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1024 - f64.const 5.562684646268003e-309 + i64.const -4571153621781053440 + f64.reinterpret_i64 + i64.const 1125899906842624 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29627,8 +29925,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1025 - f64.const 2.781342323134e-309 + i64.const -4571149223734542336 + f64.reinterpret_i64 + i64.const 562949953421312 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29641,8 +29941,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1074 - f64.const 5e-324 + i64.const -4570933719455498240 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_exp2 @@ -29655,10 +29957,15 @@ call $~lib/builtins/abort unreachable end - f64.const -1074.5 - f64.const 5e-324 - f64.const 0.2928932309150696 - i32.const 9 + i64.const -4570931520432242688 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 + i64.const 4598947915300339712 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29669,10 +29976,14 @@ call $~lib/builtins/abort unreachable end - f64.const -1075 + i64.const -4570929321408987136 + f64.reinterpret_i64 f64.const 0 - f64.const -0.5 - i32.const 9 + i64.const -4620693217682128896 + f64.reinterpret_i64 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29683,10 +29994,13 @@ call $~lib/builtins/abort unreachable end - f64.const -2048 + i64.const -4566650022153682944 + f64.reinterpret_i64 f64.const 0 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_exp2 i32.eqz if @@ -29697,10 +30011,16 @@ call $~lib/builtins/abort unreachable end - f32.const -8.066848754882812 - f32.const 3.7293792702257633e-03 - f32.const -0.0674908235669136 - i32.const 1 + i64.const -4602641186669199360 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4570745785645268992 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4633844389825740800 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29711,10 +30031,16 @@ call $~lib/builtins/abort unreachable end - f32.const 4.345239639282227 - f32.const 20.32579231262207 - f32.const 0.34121403098106384 - i32.const 1 + i64.const 4616578323332464640 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4626414419599949824 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4599818385449025536 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29725,10 +30051,16 @@ call $~lib/builtins/abort unreachable end - f32.const -8.381433486938477 - f32.const 2.9987283051013947e-03 - f32.const 0.15504619479179382 - i32.const 1 + i64.const -4602464091208941568 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4569061019225161728 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4594754148171251712 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29739,10 +30071,16 @@ call $~lib/builtins/abort unreachable end - f32.const -6.531673431396484 - f32.const 0.010808623395860195 - f32.const 0.2603940963745117 - i32.const 1 + i64.const -4604332007919452160 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4577384368955195392 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4598362462939512832 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29753,10 +30091,16 @@ call $~lib/builtins/abort unreachable end - f32.const 9.267057418823242 - f32.const 616.1156616210938 - f32.const -0.1379322111606598 - i32.const 1 + i64.const 4621406507597037568 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4648630626491039744 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4629234484925956096 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29767,10 +30111,16 @@ call $~lib/builtins/abort unreachable end - f32.const 0.6619858741760254 - f32.const 1.5822590589523315 - f32.const -0.427890807390213 - i32.const 1 + i64.const 4604137858217803776 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4609804680480948224 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4621992221413998592 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29781,10 +30131,16 @@ call $~lib/builtins/abort unreachable end - f32.const -0.40660393238067627 - f32.const 0.7543970942497253 - f32.const -0.38062313199043274 - i32.const 1 + i64.const -4622375691663441920 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4604970224490381312 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4622843720155267072 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29795,10 +30151,16 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5617597699165344 - f32.const 1.4760686159133911 - f32.const 0.1507442593574524 - i32.const 1 + i64.const 4603235101726212096 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4609326441241247744 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4594599154612699136 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29809,10 +30171,16 @@ call $~lib/builtins/abort unreachable end - f32.const 0.7741522789001465 - f32.const 1.7101848125457764 - f32.const -0.39102980494499207 - i32.const 1 + i64.const 4605148163374841856 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4610380806857162752 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4622656250201505792 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29823,10 +30191,16 @@ call $~lib/builtins/abort unreachable end - f32.const -0.6787636876106262 - f32.const 0.6247003674507141 - f32.const -0.20904375612735748 - i32.const 1 + i64.const -4619083057528307712 + f64.reinterpret_i64 + f32.demote_f64 + i64.const 4603802020229414912 + f64.reinterpret_i64 + f32.demote_f64 + i64.const -4626672421506646016 + f64.reinterpret_i64 + f32.demote_f64 + global.get $std/math/INEXACT call $std/math/test_exp2f i32.eqz if @@ -29840,7 +30214,7 @@ f64.const -8.06684839057968 f64.const -9 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29854,7 +30228,7 @@ f64.const 4.345239849338305 f64.const 4 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29868,7 +30242,7 @@ f64.const -8.38143342755525 f64.const -9 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29882,7 +30256,7 @@ f64.const -6.531673581913484 f64.const -7 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29896,7 +30270,7 @@ f64.const 9.267056966972586 f64.const 9 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29910,7 +30284,7 @@ f64.const 0.6619858980995045 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29924,7 +30298,7 @@ f64.const -0.4066039223853553 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29938,7 +30312,7 @@ f64.const 0.5617597462207241 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29952,7 +30326,7 @@ f64.const 0.7741522965913037 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -29966,7 +30340,7 @@ f64.const -0.6787637026394024 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -30005,8 +30379,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_floor @@ -30078,7 +30454,7 @@ f64.const 0.5 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -30092,7 +30468,7 @@ f64.const -0.5 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -30106,7 +30482,7 @@ f64.const 1.0000152587890625 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -30120,7 +30496,7 @@ f64.const -1.0000152587890625 f64.const -2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -30134,7 +30510,7 @@ f64.const 0.9999923706054688 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -30148,7 +30524,7 @@ f64.const -0.9999923706054688 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -30162,7 +30538,7 @@ f64.const 7.888609052210118e-31 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -30176,7 +30552,7 @@ f64.const -7.888609052210118e-31 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floor i32.eqz if @@ -30190,7 +30566,7 @@ f32.const -8.066848754882812 f32.const -9 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30204,7 +30580,7 @@ f32.const 4.345239639282227 f32.const 4 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30218,7 +30594,7 @@ f32.const -8.381433486938477 f32.const -9 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30232,7 +30608,7 @@ f32.const -6.531673431396484 f32.const -7 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30246,7 +30622,7 @@ f32.const 9.267057418823242 f32.const 9 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30260,7 +30636,7 @@ f32.const 0.6619858741760254 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30274,7 +30650,7 @@ f32.const -0.40660393238067627 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30288,7 +30664,7 @@ f32.const 0.5617597699165344 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30302,7 +30678,7 @@ f32.const 0.7741522789001465 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30316,7 +30692,7 @@ f32.const -0.6787636876106262 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30355,8 +30731,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_floorf @@ -30428,7 +30806,7 @@ f32.const 0.5 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30442,7 +30820,7 @@ f32.const -0.5 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30456,7 +30834,7 @@ f32.const 1.0000152587890625 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30470,7 +30848,7 @@ f32.const -1.0000152587890625 f32.const -2 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30484,7 +30862,7 @@ f32.const 0.9999923706054688 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30498,7 +30876,7 @@ f32.const -0.9999923706054688 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30512,7 +30890,7 @@ f32.const 7.888609052210118e-31 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30526,7 +30904,7 @@ f32.const -7.888609052210118e-31 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_floorf i32.eqz if @@ -30541,7 +30919,7 @@ f64.const 4.535662560676869 f64.const 9.25452742288464 f64.const -0.31188681721687317 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30556,7 +30934,7 @@ f64.const -8.88799136300345 f64.const 9.893305808328252 f64.const 0.4593673348426819 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30571,7 +30949,7 @@ f64.const -2.763607337379588 f64.const 8.825301797432132 f64.const -0.1701754331588745 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30586,7 +30964,7 @@ f64.const 4.567535276842744 f64.const 7.970265885519092 f64.const -0.3176782727241516 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30601,7 +30979,7 @@ f64.const 4.811392084359796 f64.const 10.441639651824575 f64.const -0.2693633437156677 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30616,7 +30994,7 @@ f64.const 0.6620717923376739 f64.const 6.483936052542593 f64.const 0.35618898272514343 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30631,7 +31009,7 @@ f64.const 0.05215452675006225 f64.const 7.859063309581766 f64.const 0.08044655621051788 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30646,7 +31024,7 @@ f64.const 7.67640268511754 f64.const 7.717156764899584 f64.const 0.05178084969520569 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30661,7 +31039,7 @@ f64.const 2.0119025790324803 f64.const 2.104006123874314 f64.const -0.0918039008975029 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30676,7 +31054,7 @@ f64.const 0.03223983060263804 f64.const 0.5596880129062913 f64.const 0.1383407711982727 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypot i32.eqz if @@ -30882,7 +31260,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const inf f64.const 0 @@ -30898,7 +31277,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -30912,7 +31292,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const inf f64.const 0 @@ -30928,7 +31309,8 @@ unreachable end f64.const nan:0x8000000000000 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -31006,7 +31388,7 @@ f32.const 4.535662651062012 f32.const 9.254528045654297 f32.const 0.2735958993434906 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -31021,7 +31403,7 @@ f32.const -8.887990951538086 f32.const 9.893305778503418 f32.const 0.4530770778656006 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -31036,7 +31418,7 @@ f32.const -2.7636072635650635 f32.const 8.825302124023438 f32.const 0.30755728483200073 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -31051,7 +31433,7 @@ f32.const 4.567535400390625 f32.const 7.970265865325928 f32.const 0.06785223633050919 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -31066,7 +31448,7 @@ f32.const 4.811392307281494 f32.const 10.44163990020752 f32.const -0.26776307821273804 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -31081,7 +31463,7 @@ f32.const 0.6620717644691467 f32.const 6.483936309814453 f32.const 0.48381292819976807 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -31096,7 +31478,7 @@ f32.const 0.052154526114463806 f32.const 7.859063148498535 f32.const 0.07413065433502197 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -31111,7 +31493,7 @@ f32.const 7.676402568817139 f32.const 7.717156887054443 f32.const 0.4940592646598816 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -31126,7 +31508,7 @@ f32.const 2.0119025707244873 f32.const 2.104006052017212 f32.const -0.287089467048645 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -31141,7 +31523,7 @@ f32.const 0.03223983198404312 f32.const 0.5596880316734314 f32.const 0.4191940724849701 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_hypotf i32.eqz if @@ -31347,7 +31729,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const inf f32.const 0 @@ -31363,7 +31746,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -31377,7 +31761,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const inf f32.const 0 @@ -31393,7 +31778,8 @@ unreachable end f32.const nan:0x400000 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -31440,7 +31826,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31454,7 +31840,7 @@ f64.const 4.345239849338305 f64.const 1.4690809584224322 f64.const -0.3412533402442932 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log i32.eqz if @@ -31468,7 +31854,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31482,7 +31868,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31496,7 +31882,7 @@ f64.const 9.267056966972586 f64.const 2.2264658498795615 f64.const 0.3638114035129547 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log i32.eqz if @@ -31510,7 +31896,7 @@ f64.const 0.6619858980995045 f64.const -0.4125110252365137 f64.const -0.29108747839927673 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log i32.eqz if @@ -31524,7 +31910,7 @@ f64.const -0.4066039223853553 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31538,7 +31924,7 @@ f64.const 0.5617597462207241 f64.const -0.5766810183195862 f64.const -0.10983199626207352 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log i32.eqz if @@ -31552,7 +31938,7 @@ f64.const 0.7741522965913037 f64.const -0.2559866591263865 f64.const -0.057990044355392456 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log i32.eqz if @@ -31566,7 +31952,7 @@ f64.const -0.6787637026394024 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31578,9 +31964,10 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log i32.eqz if @@ -31592,9 +31979,10 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log i32.eqz if @@ -31608,7 +31996,7 @@ f64.const -7.888609052210118e-31 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31636,7 +32024,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31661,10 +32049,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log i32.eqz if @@ -31690,9 +32079,10 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_logf i32.eqz if @@ -31704,9 +32094,10 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_logf i32.eqz if @@ -31720,7 +32111,7 @@ f32.const -7.888609052210118e-31 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31748,7 +32139,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31773,10 +32164,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31802,9 +32194,10 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_logf i32.eqz if @@ -31816,9 +32209,10 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_logf i32.eqz if @@ -31832,7 +32226,7 @@ f32.const -7.888609052210118e-31 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31860,7 +32254,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31885,10 +32279,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_logf i32.eqz if @@ -31916,7 +32311,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -31930,7 +32325,7 @@ f64.const 4.345239849338305 f64.const 0.6380137537120029 f64.const -0.2088824063539505 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10 i32.eqz if @@ -31944,7 +32339,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -31958,7 +32353,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -31972,7 +32367,7 @@ f64.const 9.267056966972586 f64.const 0.9669418327487274 f64.const -0.06120431795716286 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10 i32.eqz if @@ -31986,7 +32381,7 @@ f64.const 0.6619858980995045 f64.const -0.17915126198447093 f64.const 0.39090874791145325 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10 i32.eqz if @@ -32000,7 +32395,7 @@ f64.const -0.4066039223853553 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -32014,7 +32409,7 @@ f64.const 0.5617597462207241 f64.const -0.25044938407454437 f64.const -0.3046841621398926 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10 i32.eqz if @@ -32028,7 +32423,7 @@ f64.const 0.7741522965913037 f64.const -0.11117359349943837 f64.const -0.31503361463546753 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10 i32.eqz if @@ -32042,7 +32437,7 @@ f64.const -0.6787637026394024 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -32054,9 +32449,10 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log10 i32.eqz if @@ -32068,9 +32464,10 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log10 i32.eqz if @@ -32084,7 +32481,7 @@ f64.const -7.888609052210118e-31 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -32112,7 +32509,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -32137,10 +32534,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10 i32.eqz if @@ -32168,7 +32566,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32182,7 +32580,7 @@ f32.const 4.345239639282227 f32.const 0.6380137205123901 f32.const -0.20476758480072021 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10f i32.eqz if @@ -32196,7 +32594,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32210,7 +32608,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32224,7 +32622,7 @@ f32.const 9.267057418823242 f32.const 0.9669418334960938 f32.const -0.34273025393486023 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10f i32.eqz if @@ -32238,7 +32636,7 @@ f32.const 0.6619858741760254 f32.const -0.1791512817144394 f32.const -0.27078554034233093 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10f i32.eqz if @@ -32252,7 +32650,7 @@ f32.const -0.40660393238067627 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32266,7 +32664,7 @@ f32.const 0.5617597699165344 f32.const -0.25044935941696167 f32.const 0.2126826047897339 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10f i32.eqz if @@ -32280,7 +32678,7 @@ f32.const 0.7741522789001465 f32.const -0.1111735999584198 f32.const 0.46515095233917236 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log10f i32.eqz if @@ -32294,7 +32692,7 @@ f32.const -0.6787636876106262 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32306,9 +32704,10 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log10f i32.eqz if @@ -32320,9 +32719,10 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log10f i32.eqz if @@ -32336,7 +32736,7 @@ f32.const -7.888609052210118e-31 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32364,7 +32764,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32389,10 +32789,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log10f i32.eqz if @@ -32420,7 +32821,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1p i32.eqz if @@ -32434,7 +32835,7 @@ f64.const 4.345239849338305 f64.const 1.6762064170601734 f64.const 0.46188199520111084 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32448,7 +32849,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1p i32.eqz if @@ -32462,7 +32863,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1p i32.eqz if @@ -32476,7 +32877,7 @@ f64.const 9.267056966972586 f64.const 2.3289404168523826 f64.const -0.411114901304245 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32490,7 +32891,7 @@ f64.const 0.6619858980995045 f64.const 0.5080132114992477 f64.const -0.29306045174598694 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32504,7 +32905,7 @@ f64.const -0.4066039223853553 f64.const -0.5218931811663979 f64.const -0.25825726985931396 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32518,7 +32919,7 @@ f64.const 0.5617597462207241 f64.const 0.4458132279488102 f64.const -0.13274887204170227 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32532,7 +32933,7 @@ f64.const 0.7741522965913037 f64.const 0.5733227294648414 f64.const 0.02716583013534546 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32546,7 +32947,7 @@ f64.const -0.6787637026394024 f64.const -1.1355782978128564 f64.const 0.2713092863559723 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32588,7 +32989,7 @@ f64.const -7.888609052210118e-31 f64.const -7.888609052210118e-31 f64.const 1.7763568394002505e-15 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32602,7 +33003,7 @@ f64.const 1 f64.const 0.6931471805599453 f64.const -0.2088811695575714 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1p i32.eqz if @@ -32614,9 +33015,10 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log1p i32.eqz if @@ -32641,10 +33043,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1p i32.eqz if @@ -32672,7 +33075,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1pf i32.eqz if @@ -32686,7 +33089,7 @@ f32.const 4.345239639282227 f32.const 1.676206350326538 f32.const -0.23014859855175018 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32700,7 +33103,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1pf i32.eqz if @@ -32714,7 +33117,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1pf i32.eqz if @@ -32728,7 +33131,7 @@ f32.const 9.267057418823242 f32.const 2.3289403915405273 f32.const -0.29075589776039124 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32742,7 +33145,7 @@ f32.const 0.6619858741760254 f32.const 0.5080131888389587 f32.const -0.1386766880750656 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32756,7 +33159,7 @@ f32.const -0.40660393238067627 f32.const -0.5218932032585144 f32.const -0.08804433047771454 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32770,7 +33173,7 @@ f32.const 0.5617597699165344 f32.const 0.44581323862075806 f32.const -0.15101368725299835 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32784,7 +33187,7 @@ f32.const 0.7741522789001465 f32.const 0.5733227133750916 f32.const -0.10264533013105392 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32798,7 +33201,7 @@ f32.const -0.6787636876106262 f32.const -1.1355782747268677 f32.const -0.19879481196403503 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32840,7 +33243,7 @@ f32.const -7.888609052210118e-31 f32.const -7.888609052210118e-31 f32.const 3.308722450212111e-24 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32854,7 +33257,7 @@ f32.const 1 f32.const 0.6931471824645996 f32.const 0.031954795122146606 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log1pf i32.eqz if @@ -32866,9 +33269,10 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log1pf i32.eqz if @@ -32893,10 +33297,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log1pf i32.eqz if @@ -32924,7 +33329,9 @@ f32.const -1.1754942106924411e-38 f32.const -1.1754942106924411e-38 f32.const 4.930380657631324e-32 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_log1pf i32.eqz if @@ -32938,7 +33345,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -32952,7 +33359,7 @@ f64.const 4.345239849338305 f64.const 2.1194358133804485 f64.const -0.10164877772331238 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2 i32.eqz if @@ -32966,7 +33373,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -32980,7 +33387,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -32994,7 +33401,7 @@ f64.const 9.267056966972586 f64.const 3.2121112403298744 f64.const -0.15739446878433228 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2 i32.eqz if @@ -33008,7 +33415,7 @@ f64.const 0.6619858980995045 f64.const -0.5951276104207402 f64.const 0.3321485221385956 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2 i32.eqz if @@ -33022,7 +33429,7 @@ f64.const -0.4066039223853553 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -33036,7 +33443,7 @@ f64.const 0.5617597462207241 f64.const -0.8319748453044644 f64.const 0.057555437088012695 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2 i32.eqz if @@ -33050,7 +33457,7 @@ f64.const 0.7741522965913037 f64.const -0.36931068365537134 f64.const -0.19838279485702515 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2 i32.eqz if @@ -33064,7 +33471,7 @@ f64.const -0.6787637026394024 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -33076,9 +33483,10 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log2 i32.eqz if @@ -33090,9 +33498,10 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log2 i32.eqz if @@ -33106,7 +33515,7 @@ f64.const -7.888609052210118e-31 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -33134,7 +33543,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -33159,10 +33568,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2 i32.eqz if @@ -33190,7 +33600,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33204,7 +33614,7 @@ f32.const 4.345239639282227 f32.const 2.1194357872009277 f32.const 0.18271538615226746 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2f i32.eqz if @@ -33218,7 +33628,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33232,7 +33642,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33246,7 +33656,7 @@ f32.const 9.267057418823242 f32.const 3.212111234664917 f32.const -0.3188050389289856 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2f i32.eqz if @@ -33260,7 +33670,7 @@ f32.const 0.6619858741760254 f32.const -0.5951276421546936 f32.const 0.34231460094451904 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2f i32.eqz if @@ -33274,7 +33684,7 @@ f32.const -0.40660393238067627 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33288,7 +33698,7 @@ f32.const 0.5617597699165344 f32.const -0.8319748044013977 f32.const -0.33473604917526245 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2f i32.eqz if @@ -33302,7 +33712,7 @@ f32.const 0.7741522789001465 f32.const -0.3693107068538666 f32.const 0.3278401792049408 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_log2f i32.eqz if @@ -33316,7 +33726,7 @@ f32.const -0.6787636876106262 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33328,9 +33738,10 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log2f i32.eqz if @@ -33342,9 +33753,10 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_log2f i32.eqz if @@ -33358,7 +33770,7 @@ f32.const -7.888609052210118e-31 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33386,7 +33798,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33411,10 +33823,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_log2f i32.eqz if @@ -33694,7 +34107,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const 1 f64.const 0 @@ -33829,7 +34243,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const -1 f64.const 0 @@ -33905,7 +34320,8 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -33980,7 +34396,8 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const 0 i32.const 0 @@ -34054,7 +34471,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 f64.const 0 @@ -34114,7 +34532,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const -0 f64.const 0 @@ -34189,7 +34608,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 f64.const 2 f64.const 0 @@ -34204,7 +34624,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0.5 f64.const -0.5 f64.const 0 @@ -34219,7 +34640,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 @@ -34324,7 +34746,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const inf f64.const 0 @@ -34340,7 +34763,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const 0 i32.const 0 @@ -34355,7 +34779,8 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -34370,7 +34795,8 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -34384,9 +34810,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_max @@ -34714,7 +35143,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const 1 f32.const 0 @@ -34849,7 +35279,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const -1 f32.const 0 @@ -34925,7 +35356,8 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -35000,7 +35432,8 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const 0 i32.const 0 @@ -35074,7 +35507,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 f32.const 0 @@ -35134,7 +35568,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const -0 f32.const 0 @@ -35209,7 +35644,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 2 f32.const 2 f32.const 0 @@ -35224,7 +35660,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0.5 f32.const -0.5 f32.const 0 @@ -35239,7 +35676,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -35344,7 +35782,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const inf f32.const 0 @@ -35360,7 +35799,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const 0 i32.const 0 @@ -35375,7 +35815,8 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -35390,7 +35831,8 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -35404,9 +35846,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_maxf @@ -35734,9 +36179,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -35869,9 +36316,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -35945,8 +36394,10 @@ unreachable end f64.const 0 - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36020,8 +36471,10 @@ unreachable end f64.const -0 - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36094,9 +36547,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36154,9 +36609,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36229,9 +36686,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36244,9 +36703,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0.5 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36259,7 +36720,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 @@ -36364,9 +36826,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf f64.const inf - f64.const -inf + f64.neg + f64.const inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36380,8 +36844,10 @@ unreachable end f64.const 1 - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36395,8 +36861,10 @@ unreachable end f64.const -1 - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36410,8 +36878,10 @@ unreachable end f64.const inf - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36424,9 +36894,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_min @@ -36754,9 +37227,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -36889,9 +37364,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -36965,8 +37442,10 @@ unreachable end f32.const 0 - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37040,8 +37519,10 @@ unreachable end f32.const -0 - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37114,9 +37595,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37174,9 +37657,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37249,9 +37734,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 2 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37264,9 +37751,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0.5 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37279,7 +37768,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -37384,9 +37874,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const inf - f32.const -inf + f32.neg + f32.const inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37400,8 +37892,10 @@ unreachable end f32.const 1 - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37415,8 +37909,10 @@ unreachable end f32.const -1 - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37430,8 +37926,10 @@ unreachable end f32.const inf - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37444,9 +37942,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_minf @@ -37823,7 +38324,7 @@ f64.const 1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -37834,11 +38335,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38018,7 +38520,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38029,11 +38531,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38063,7 +38566,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38078,7 +38581,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38105,7 +38608,8 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -38138,7 +38642,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38153,7 +38657,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38180,7 +38684,8 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const 0 i32.const 0 @@ -38213,7 +38718,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38228,7 +38733,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38243,7 +38748,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38254,11 +38759,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38288,7 +38794,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38303,7 +38809,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38314,11 +38820,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38348,7 +38855,7 @@ f64.const 2 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38363,7 +38870,7 @@ f64.const -0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38389,11 +38896,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38404,11 +38912,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38419,7 +38928,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 @@ -38513,7 +39023,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38524,11 +39034,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38540,7 +39051,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const 0 i32.const 0 @@ -38555,7 +39067,8 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -38570,10 +39083,11 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38584,11 +39098,13 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_mod i32.eqz if @@ -38659,8 +39175,10 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const 2.2250738585072014e-308 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38674,8 +39192,10 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const -2.2250738585072014e-308 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38689,8 +39209,10 @@ call $~lib/builtins/abort unreachable end - f64.const -2.2250738585072014e-308 - f64.const 2.2250738585072014e-308 + i64.const -9218868437227405312 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38704,8 +39226,10 @@ call $~lib/builtins/abort unreachable end - f64.const -2.2250738585072014e-308 - f64.const -2.2250738585072014e-308 + i64.const -9218868437227405312 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38719,8 +39243,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const 1797693134862315708145274e284 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38734,8 +39260,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const -1797693134862315708145274e284 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38749,8 +39277,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const 1797693134862315708145274e284 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38764,8 +39294,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const -1797693134862315708145274e284 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38779,8 +39311,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - f64.const 2.2250738585072014e-308 + i64.const 0 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38794,8 +39328,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - f64.const 1797693134862315708145274e284 + i64.const 0 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38809,8 +39345,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - f64.const -2.2250738585072014e-308 + i64.const 0 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38824,8 +39362,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - f64.const -1797693134862315708145274e284 + i64.const 0 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 f64.const 0 f64.const 0 i32.const 0 @@ -38839,8 +39379,10 @@ call $~lib/builtins/abort unreachable end - f64.const -0 - f64.const 2.2250738585072014e-308 + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38854,8 +39396,10 @@ call $~lib/builtins/abort unreachable end - f64.const -0 - f64.const 1797693134862315708145274e284 + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38869,8 +39413,10 @@ call $~lib/builtins/abort unreachable end - f64.const -0 - f64.const -2.2250738585072014e-308 + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const -9218868437227405312 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38884,8 +39430,10 @@ call $~lib/builtins/abort unreachable end - f64.const -0 - f64.const -1797693134862315708145274e284 + i64.const -9223372036854775808 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 f64.const -0 f64.const 0 i32.const 0 @@ -38899,9 +39447,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const 1797693134862315508561243e284 - f64.const 1995840309534719811656372e268 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const 8980177656976769024 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38914,9 +39465,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const 1797693134862315508561243e284 - f64.const -1995840309534719811656372e268 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const -243194379878006784 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38929,9 +39483,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const -8988465674311579538646525e283 - f64.const 8988465674311577542806216e283 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740992 + f64.reinterpret_i64 + i64.const 9214364837600034814 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38944,9 +39501,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const -8988465674311579538646525e283 - f64.const -8988465674311577542806216e283 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -9007199254740992 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38959,9 +39519,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const 8988465674311578540726371e283 - f64.const 0 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38974,9 +39537,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const 8988465674311578540726371e283 - f64.const -0 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const -9223372036854775808 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -38989,9 +39555,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const -8988465674311577542806216e283 - f64.const 1995840309534719811656372e268 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 + i64.const 8980177656976769024 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39004,9 +39573,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - f64.const -8988465674311577542806216e283 - f64.const -1995840309534719811656372e268 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 + i64.const -243194379878006784 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39019,9 +39591,12 @@ call $~lib/builtins/abort unreachable end - f64.const 8988465674311579538646525e283 - f64.const 1797693134862315708145274e284 - f64.const 8988465674311579538646525e283 + i64.const 9214364837600034816 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9214364837600034816 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39034,9 +39609,12 @@ call $~lib/builtins/abort unreachable end - f64.const -8988465674311579538646525e283 - f64.const 1797693134862315708145274e284 - f64.const -8988465674311579538646525e283 + i64.const -9007199254740992 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740992 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39049,9 +39627,12 @@ call $~lib/builtins/abort unreachable end - f64.const 8988465674311578540726371e283 - f64.const -1797693134862315708145274e284 - f64.const 8988465674311578540726371e283 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39064,9 +39645,12 @@ call $~lib/builtins/abort unreachable end - f64.const -8988465674311578540726371e283 - f64.const -1797693134862315708145274e284 - f64.const -8988465674311578540726371e283 + i64.const -9007199254740993 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -9007199254740993 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39079,9 +39663,12 @@ call $~lib/builtins/abort unreachable end - f64.const 8988465674311577542806216e283 - f64.const 1797693134862315708145274e284 - f64.const 8988465674311577542806216e283 + i64.const 9214364837600034814 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const 9214364837600034814 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39094,9 +39681,12 @@ call $~lib/builtins/abort unreachable end - f64.const -8988465674311577542806216e283 - f64.const 1797693134862315708145274e284 - f64.const -8988465674311577542806216e283 + i64.const -9007199254740994 + f64.reinterpret_i64 + i64.const 9218868437227405311 + f64.reinterpret_i64 + i64.const -9007199254740994 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39109,9 +39699,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315508561243e284 - f64.const -1797693134862315708145274e284 - f64.const 1797693134862315508561243e284 + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const 9218868437227405310 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39124,9 +39717,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315508561243e284 - f64.const -1797693134862315708145274e284 - f64.const -1797693134862315508561243e284 + i64.const -4503599627370498 + f64.reinterpret_i64 + i64.const -4503599627370497 + f64.reinterpret_i64 + i64.const -4503599627370498 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39139,9 +39735,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315508561243e284 - f64.const 8988465674311578540726371e283 - f64.const 8988465674311576544886061e283 + i64.const 9218868437227405310 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const 9214364837600034813 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39154,9 +39753,12 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315508561243e284 - f64.const 8988465674311578540726371e283 - f64.const -8988465674311576544886061e283 + i64.const -4503599627370498 + f64.reinterpret_i64 + i64.const 9214364837600034815 + f64.reinterpret_i64 + i64.const -9007199254740995 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39169,7 +39771,8 @@ call $~lib/builtins/abort unreachable end - f64.const 7.5 + i64.const 4620130267728707584 + f64.reinterpret_i64 f64.const 1 f64.const 0.5 f64.const 0 @@ -39184,7 +39787,8 @@ call $~lib/builtins/abort unreachable end - f64.const 6.5 + i64.const 4619004367821864960 + f64.reinterpret_i64 f64.const 1 f64.const 0.5 f64.const 0 @@ -39199,7 +39803,8 @@ call $~lib/builtins/abort unreachable end - f64.const 5.5 + i64.const 4617878467915022336 + f64.reinterpret_i64 f64.const 1 f64.const 0.5 f64.const 0 @@ -39214,7 +39819,8 @@ call $~lib/builtins/abort unreachable end - f64.const 4.5 + i64.const 4616752568008179712 + f64.reinterpret_i64 f64.const 1 f64.const 0.5 f64.const 0 @@ -39229,7 +39835,8 @@ call $~lib/builtins/abort unreachable end - f64.const -7.5 + i64.const -4603241769126068224 + f64.reinterpret_i64 f64.const 1 f64.const -0.5 f64.const 0 @@ -39244,7 +39851,8 @@ call $~lib/builtins/abort unreachable end - f64.const -6.5 + i64.const -4604367669032910848 + f64.reinterpret_i64 f64.const 1 f64.const -0.5 f64.const 0 @@ -39259,7 +39867,8 @@ call $~lib/builtins/abort unreachable end - f64.const -5.5 + i64.const -4605493568939753472 + f64.reinterpret_i64 f64.const 1 f64.const -0.5 f64.const 0 @@ -39274,7 +39883,8 @@ call $~lib/builtins/abort unreachable end - f64.const -4.5 + i64.const -4606619468846596096 + f64.reinterpret_i64 f64.const 1 f64.const -0.5 f64.const 0 @@ -39289,9 +39899,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585071994e-308 - f64.const 2.2250738585072004e-308 - f64.const 2.2250738585071994e-308 + i64.const 4503599627370492 + f64.reinterpret_i64 + i64.const 4503599627370494 + f64.reinterpret_i64 + i64.const 4503599627370492 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39304,9 +39917,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585071994e-308 - f64.const -2.2250738585072004e-308 - f64.const 2.2250738585071994e-308 + i64.const 4503599627370492 + f64.reinterpret_i64 + i64.const -9218868437227405314 + f64.reinterpret_i64 + i64.const 4503599627370492 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39319,9 +39935,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507201e-308 - f64.const 1.5e-323 - f64.const 0 + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39334,9 +39953,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507201e-308 - f64.const 4.4501477170144023e-308 - f64.const 2.225073858507201e-308 + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const 9007199254740991 + f64.reinterpret_i64 + i64.const 4503599627370495 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39349,9 +39971,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507201e-308 - f64.const inf - f64.const 2.225073858507201e-308 + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const 9218868437227405312 + f64.reinterpret_i64 + i64.const 4503599627370495 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39364,9 +39989,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507201e-308 - f64.const -1.5e-323 - f64.const 0 + i64.const 4503599627370495 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39379,9 +40007,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const 1.5e-323 - f64.const 5e-324 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39394,9 +40025,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const 2.2250738585072004e-308 - f64.const 1e-323 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 4503599627370494 + f64.reinterpret_i64 + i64.const 2 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39409,9 +40043,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const 4.4501477170144023e-308 - f64.const 2.2250738585072014e-308 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const 9007199254740991 + f64.reinterpret_i64 + i64.const 4503599627370496 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39424,9 +40061,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - f64.const -1.5e-323 - f64.const 5e-324 + i64.const 4503599627370496 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39439,9 +40079,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507202e-308 - f64.const 2.2250738585072004e-308 - f64.const 1.5e-323 + i64.const 4503599627370497 + f64.reinterpret_i64 + i64.const 4503599627370494 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39454,9 +40097,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072024e-308 - f64.const 1.5e-323 - f64.const 0 + i64.const 4503599627370498 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39469,9 +40115,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072024e-308 - f64.const -1.5e-323 - f64.const 0 + i64.const 4503599627370498 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 0 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39484,9 +40133,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507203e-308 - f64.const 1.5e-323 - f64.const 5e-324 + i64.const 4503599627370499 + f64.reinterpret_i64 + i64.const 3 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39499,9 +40151,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507203e-308 - f64.const 2.225073858507204e-308 - f64.const 2.225073858507203e-308 + i64.const 4503599627370499 + f64.reinterpret_i64 + i64.const 4503599627370501 + f64.reinterpret_i64 + i64.const 4503599627370499 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39514,9 +40169,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.225073858507203e-308 - f64.const -1.5e-323 - f64.const 5e-324 + i64.const 4503599627370499 + f64.reinterpret_i64 + i64.const -9223372036854775805 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39529,9 +40187,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072034e-308 - f64.const 2.225073858507204e-308 - f64.const 2.2250738585072034e-308 + i64.const 4503599627370500 + f64.reinterpret_i64 + i64.const 4503599627370501 + f64.reinterpret_i64 + i64.const 4503599627370500 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39544,9 +40205,12 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072043e-308 - f64.const 2.225073858507204e-308 - f64.const 5e-324 + i64.const 4503599627370502 + f64.reinterpret_i64 + i64.const 4503599627370501 + f64.reinterpret_i64 + i64.const 1 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39559,9 +40223,12 @@ call $~lib/builtins/abort unreachable end - f64.const 4.4501477170144023e-308 - f64.const 4.450147717014403e-308 - f64.const 4.4501477170144023e-308 + i64.const 9007199254740991 + f64.reinterpret_i64 + i64.const 9007199254740992 + f64.reinterpret_i64 + i64.const 9007199254740991 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39574,9 +40241,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1.139237815555687e-305 - f64.const 5.696189077778436e-306 - f64.const 5.696189077778434e-306 + i64.const 45035996273704959 + f64.reinterpret_i64 + i64.const 40532396646334464 + f64.reinterpret_i64 + i64.const 40532396646334462 + f64.reinterpret_i64 f64.const 0 i32.const 0 call $std/math/test_mod @@ -39893,7 +40563,7 @@ f32.const 1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -39904,11 +40574,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40088,7 +40759,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40099,11 +40770,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40133,7 +40805,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40148,7 +40820,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40175,7 +40847,8 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -40208,7 +40881,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40223,7 +40896,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40250,7 +40923,8 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const 0 i32.const 0 @@ -40283,7 +40957,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40298,7 +40972,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40313,7 +40987,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40324,11 +40998,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40358,7 +41033,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40373,7 +41048,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40384,11 +41059,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40418,7 +41094,7 @@ f32.const 2 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40433,7 +41109,7 @@ f32.const -0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40459,11 +41135,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 2 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40474,11 +41151,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40489,7 +41167,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -40583,7 +41262,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40594,11 +41273,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40610,7 +41290,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const 0 i32.const 0 @@ -40625,7 +41306,8 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -40640,10 +41322,11 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40654,11 +41337,13 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_modf i32.eqz if @@ -40733,7 +41418,7 @@ f64.const 4.535662560676869 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -40748,7 +41433,7 @@ f64.const -8.88799136300345 f64.const 2.1347118825587285e-06 f64.const 0.3250160217285156 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_pow i32.eqz if @@ -40763,7 +41448,7 @@ f64.const -2.763607337379588 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -40778,7 +41463,7 @@ f64.const 4.567535276842744 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -40793,7 +41478,7 @@ f64.const 4.811392084359796 f64.const 44909.29941512966 f64.const -0.26659080386161804 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_pow i32.eqz if @@ -40808,7 +41493,7 @@ f64.const 0.6620717923376739 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -40823,7 +41508,7 @@ f64.const 0.05215452675006225 f64.const 1.1135177413458652 f64.const -0.37168607115745544 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_pow i32.eqz if @@ -40838,7 +41523,7 @@ f64.const 7.67640268511754 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -40853,7 +41538,7 @@ f64.const 2.0119025790324803 f64.const 0.37690773521380183 f64.const 0.32473301887512207 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_pow i32.eqz if @@ -40868,7 +41553,7 @@ f64.const 0.03223983060263804 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -41003,7 +41688,7 @@ f64.const -0.5 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41018,7 +41703,7 @@ f64.const -1 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41033,7 +41718,7 @@ f64.const -2 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41048,7 +41733,7 @@ f64.const -3 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41063,7 +41748,7 @@ f64.const -4 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41075,7 +41760,8 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -41213,7 +41899,7 @@ f64.const -0.5 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41226,9 +41912,10 @@ end f64.const -0 f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41243,7 +41930,7 @@ f64.const -2 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41256,9 +41943,10 @@ end f64.const -0 f64.const -3 - f64.const -inf + f64.const inf + f64.neg f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41273,7 +41961,7 @@ f64.const -4 f64.const inf f64.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_pow i32.eqz if @@ -41285,7 +41973,8 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -41329,7 +42018,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 1 f64.const 0 @@ -41419,7 +42109,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const 1 f64.const 0 @@ -41510,7 +42201,8 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 i32.const 0 @@ -41588,7 +42280,7 @@ f64.const 0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -41630,7 +42322,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 i32.const 0 @@ -41708,7 +42401,7 @@ f64.const 0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -41723,7 +42416,7 @@ f64.const 1.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_pow i32.eqz if @@ -41780,7 +42473,8 @@ unreachable end f64.const -0.5 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -41825,7 +42519,8 @@ unreachable end f64.const 0.5 - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const 0 i32.const 0 @@ -41870,7 +42565,8 @@ unreachable end f64.const 1.5 - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -41930,7 +42626,8 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -42049,7 +42746,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 @@ -42064,7 +42762,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const inf f64.const 0 @@ -42079,8 +42778,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -42094,9 +42795,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 3 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_pow @@ -42109,7 +42812,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 f64.const inf f64.const 0 @@ -42124,9 +42828,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_pow @@ -42139,7 +42845,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0.5 f64.const inf f64.const 0 @@ -42154,7 +42861,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0.5 f64.const 0 f64.const 0 @@ -42169,7 +42877,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const -0 f64.const 0 @@ -42184,7 +42893,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -2 f64.const 0 f64.const 0 @@ -42343,7 +43053,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 call $~lib/math/NativeMath.pow f64.const 1 @@ -42427,10 +43138,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 call $~lib/math/NativeMath.pow - f64.const -inf + f64.const inf + f64.neg f64.eq i32.eqz if @@ -42473,7 +43186,8 @@ f64.const -0 f64.const -1 call $~lib/math/NativeMath.pow - f64.const -inf + f64.const inf + f64.neg f64.eq i32.eqz if @@ -42540,7 +43254,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 call $~lib/math/NativeMath.pow f64.const -0 @@ -42653,7 +43368,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 call $~lib/math/NativeMath.pow f64.const inf @@ -42767,7 +43483,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0.5 call $~lib/math/NativeMath.pow f64.const inf @@ -42800,7 +43517,7 @@ f32.const 4.535662651062012 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -42815,7 +43532,7 @@ f32.const -8.887990951538086 f32.const 2.134714122803416e-06 f32.const 0.1436440795660019 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -42830,7 +43547,7 @@ f32.const -2.7636072635650635 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -42845,7 +43562,7 @@ f32.const 4.567535400390625 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -42860,7 +43577,7 @@ f32.const 4.811392307281494 f32.const 44909.33203125 f32.const -0.05356409028172493 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -42875,7 +43592,7 @@ f32.const 0.6620717644691467 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -42890,7 +43607,7 @@ f32.const 0.052154526114463806 f32.const 1.1135177612304688 f32.const 0.19122089445590973 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -42905,7 +43622,7 @@ f32.const 7.676402568817139 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -42920,7 +43637,7 @@ f32.const 2.0119025707244873 f32.const 0.3769077658653259 f32.const 0.337149053812027 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -42935,7 +43652,7 @@ f32.const 0.03223983198404312 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -43070,7 +43787,7 @@ f32.const -0.5 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43085,7 +43802,7 @@ f32.const -1 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43100,7 +43817,7 @@ f32.const -2 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43115,7 +43832,7 @@ f32.const -3 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43130,7 +43847,7 @@ f32.const -4 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43142,7 +43859,8 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -43280,7 +43998,7 @@ f32.const -0.5 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43293,9 +44011,10 @@ end f32.const -0 f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43310,7 +44029,7 @@ f32.const -2 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43323,9 +44042,10 @@ end f32.const -0 f32.const -3 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43340,7 +44060,7 @@ f32.const -4 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -43352,7 +44072,8 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -43396,7 +44117,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 1 f32.const 0 @@ -43486,7 +44208,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const 1 f32.const 0 @@ -43577,7 +44300,8 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 i32.const 0 @@ -43655,7 +44379,7 @@ f32.const 0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -43697,7 +44421,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 i32.const 0 @@ -43775,7 +44500,7 @@ f32.const 0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -43790,7 +44515,7 @@ f32.const 1.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -43847,7 +44572,8 @@ unreachable end f32.const -0.5 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -43892,7 +44618,8 @@ unreachable end f32.const 0.5 - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const 0 i32.const 0 @@ -43937,7 +44664,8 @@ unreachable end f32.const 1.5 - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -43997,7 +44725,8 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -44116,7 +44845,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -44131,7 +44861,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const inf f32.const 0 @@ -44146,8 +44877,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -44161,9 +44894,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 3 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_powf @@ -44176,7 +44911,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 2 f32.const inf f32.const 0 @@ -44191,9 +44927,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_powf @@ -44206,7 +44944,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0.5 f32.const inf f32.const 0 @@ -44221,7 +44960,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0.5 f32.const 0 f32.const 0 @@ -44236,7 +44976,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const -0 f32.const 0 @@ -44251,7 +44992,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -2 f32.const 0 f32.const 0 @@ -44356,9 +45098,11 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 1 - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44371,9 +45115,11 @@ call $~lib/builtins/abort unreachable end - f32.const -1.1754943508222875e-38 + i32.const -2139095040 + f32.reinterpret_i32 f32.const 1 - f32.const -1.1754943508222875e-38 + i32.const -2139095040 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44386,9 +45132,11 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + i32.const 2139095039 + f32.reinterpret_i32 f32.const 1 - f32.const 3402823466385288598117041e14 + i32.const 2139095039 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44401,9 +45149,11 @@ call $~lib/builtins/abort unreachable end - f32.const -3402823466385288598117041e14 + i32.const -8388609 + f32.reinterpret_i32 f32.const 1 - f32.const -3402823466385288598117041e14 + i32.const -8388609 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44417,7 +45167,8 @@ unreachable end f32.const 0 - f32.const 3402823466385288598117041e14 + i32.const 2139095039 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -44432,7 +45183,8 @@ unreachable end f32.const 0 - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -44447,7 +45199,8 @@ unreachable end f32.const -0 - f32.const 3402823466385288598117041e14 + i32.const 2139095039 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -44462,7 +45215,8 @@ unreachable end f32.const -0 - f32.const 17 + i32.const 1099431936 + f32.reinterpret_i32 f32.const -0 f32.const 0 i32.const 0 @@ -44492,7 +45246,8 @@ unreachable end f32.const -0 - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -44506,11 +45261,15 @@ call $~lib/builtins/abort unreachable end - f32.const -1.100000023841858 - f32.const 101 - f32.const -15158.70703125 - f32.const -0.2798735499382019 - i32.const 1 + i32.const -1081291571 + f32.reinterpret_i32 + i32.const 1120534528 + f32.reinterpret_i32 + i32.const -965944620 + f32.reinterpret_i32 + i32.const -1097905258 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44521,9 +45280,12 @@ call $~lib/builtins/abort unreachable end - f32.const 19 - f32.const 5 - f32.const 2476099 + i32.const 1100480512 + f32.reinterpret_i32 + i32.const 1084227584 + f32.reinterpret_i32 + i32.const 1243029772 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44536,9 +45298,12 @@ call $~lib/builtins/abort unreachable end - f32.const -19 - f32.const 5 - f32.const -2476099 + i32.const -1047003136 + f32.reinterpret_i32 + i32.const 1084227584 + f32.reinterpret_i32 + i32.const -904453876 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44551,9 +45316,12 @@ call $~lib/builtins/abort unreachable end - f32.const -193 - f32.const 3 - f32.const -7189057 + i32.const -1019150336 + f32.reinterpret_i32 + i32.const 1077936128 + f32.reinterpret_i32 + i32.const -891591550 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44566,9 +45334,12 @@ call $~lib/builtins/abort unreachable end - f32.const -1201 - f32.const 2 - f32.const 1442401 + i32.const -996794368 + f32.reinterpret_i32 + i32.const 1073741824 + f32.reinterpret_i32 + i32.const 1236275976 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -44581,11 +45352,15 @@ call $~lib/builtins/abort unreachable end - f32.const 7.312918663024902 - f32.const 17.122268676757812 - f32.const 624013315407872 - f32.const -0.14995409548282623 - i32.const 1 + i32.const 1089078126 + f32.reinterpret_i32 + i32.const 1099496040 + f32.reinterpret_i32 + i32.const 1477304923 + f32.reinterpret_i32 + i32.const -1105621615 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44596,11 +45371,15 @@ call $~lib/builtins/abort unreachable end - f32.const 18.804489135742188 - f32.const 3.3214492797851562 - f32.const 17076.3515625 - f32.const 0.3042995035648346 - i32.const 1 + i32.const 1100378008 + f32.reinterpret_i32 + i32.const 1079284384 + f32.reinterpret_i32 + i32.const 1183148212 + f32.reinterpret_i32 + i32.const 1050397989 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44611,11 +45390,15 @@ call $~lib/builtins/abort unreachable end - f32.const 7.290969371795654 - f32.const 9.60707950592041 - f32.const 194467360 - f32.const -0.10728006064891815 - i32.const 1 + i32.const 1089032095 + f32.reinterpret_i32 + i32.const 1092204185 + f32.reinterpret_i32 + i32.const 1295611234 + f32.reinterpret_i32 + i32.const -1109674586 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44626,11 +45409,15 @@ call $~lib/builtins/abort unreachable end - f32.const 15.783316612243652 - f32.const 18.55087661743164 - f32.const 16889945384019652771840 - f32.const 0.09180249273777008 - i32.const 1 + i32.const 1098680439 + f32.reinterpret_i32 + i32.const 1100245042 + f32.reinterpret_i32 + i32.const 1684334277 + f32.reinterpret_i32 + i32.const 1035731698 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44641,11 +45428,15 @@ call $~lib/builtins/abort unreachable end - f32.const 8.319306373596191 - f32.const 0.4197559952735901 - f32.const 2.43339204788208 - f32.const 0.009661106392741203 - i32.const 1 + i32.const 1090853857 + f32.reinterpret_i32 + i32.const 1054272066 + f32.reinterpret_i32 + i32.const 1075559602 + f32.reinterpret_i32 + i32.const 1008617886 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44656,11 +45447,15 @@ call $~lib/builtins/abort unreachable end - f32.const 5.831245422363281 - f32.const 10.462174415588379 - f32.const 102690080 - f32.const -1.4237762661650777e-03 - i32.const 1 + i32.const 1085970832 + f32.reinterpret_i32 + i32.const 1093100817 + f32.reinterpret_i32 + i32.const 1287904676 + f32.reinterpret_i32 + i32.const -1162174975 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44671,11 +45466,15 @@ call $~lib/builtins/abort unreachable end - f32.const 2.415773391723633 - f32.const 17.12181282043457 - f32.const 3619232.25 - f32.const 0.2961936891078949 - i32.const 1 + i32.const 1075485704 + f32.reinterpret_i32 + i32.const 1099495801 + f32.reinterpret_i32 + i32.const 1247602305 + f32.reinterpret_i32 + i32.const 1050126003 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44686,11 +45485,15 @@ call $~lib/builtins/abort unreachable end - f32.const 0.03832307085394859 - f32.const 0.011254354380071163 - f32.const 0.9639571905136108 - f32.const -0.4840981066226959 - i32.const 1 + i32.const 1025308839 + f32.reinterpret_i32 + i32.const 1010328623 + f32.reinterpret_i32 + i32.const 1064748518 + f32.reinterpret_i32 + i32.const -1091052619 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44701,11 +45504,15 @@ call $~lib/builtins/abort unreachable end - f32.const 5.4462971687316895 - f32.const 15.814705848693848 - f32.const 437749907456 - f32.const -0.40305933356285095 - i32.const 1 + i32.const 1085163537 + f32.reinterpret_i32 + i32.const 1098713353 + f32.reinterpret_i32 + i32.const 1389090779 + f32.reinterpret_i32 + i32.const -1093771829 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44716,11 +45523,15 @@ call $~lib/builtins/abort unreachable end - f32.const 12.87027645111084 - f32.const 14.93734359741211 - f32.const 37522809982812160 - f32.const 0.10445278882980347 - i32.const 1 + i32.const 1095625895 + f32.reinterpret_i32 + i32.const 1097793372 + f32.reinterpret_i32 + i32.const 1527074508 + f32.reinterpret_i32 + i32.const 1037429592 + f32.reinterpret_i32 + global.get $std/math/INEXACT call $std/math/test_powf i32.eqz if @@ -44776,7 +45587,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 1 f32.const 0 @@ -44791,7 +45603,8 @@ call $~lib/builtins/abort unreachable end - f32.const 1.401298464324817e-45 + i32.const 1 + f32.reinterpret_i32 f32.const 0 f32.const 1 f32.const 0 @@ -44806,7 +45619,8 @@ call $~lib/builtins/abort unreachable end - f32.const -1.401298464324817e-45 + i32.const -2147483647 + f32.reinterpret_i32 f32.const 0 f32.const 1 f32.const 0 @@ -44866,9 +45680,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_powf @@ -44911,7 +45727,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -44986,7 +45803,8 @@ call $~lib/builtins/abort unreachable end - f32.const 1.0000001192092896 + i32.const 1065353217 + f32.reinterpret_i32 f32.const inf f32.const inf f32.const 0 @@ -45016,7 +45834,8 @@ call $~lib/builtins/abort unreachable end - f32.const -1.0000001192092896 + i32.const -1082130431 + f32.reinterpret_i32 f32.const inf f32.const inf f32.const 0 @@ -45031,7 +45850,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const inf f32.const 0 @@ -45046,8 +45866,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.0000001192092896 - f32.const -inf + i32.const 1065353217 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -45062,7 +45884,8 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -45076,8 +45899,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1.0000001192092896 - f32.const -inf + i32.const -1082130431 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -45091,8 +45916,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -45106,7 +45933,8 @@ call $~lib/builtins/abort unreachable end - f32.const 0.9999999403953552 + i32.const 1065353215 + f32.reinterpret_i32 f32.const inf f32.const 0 f32.const 0 @@ -45121,7 +45949,8 @@ call $~lib/builtins/abort unreachable end - f32.const 1.401298464324817e-45 + i32.const 1 + f32.reinterpret_i32 f32.const inf f32.const 0 f32.const 0 @@ -45151,7 +45980,8 @@ call $~lib/builtins/abort unreachable end - f32.const -0.9999999403953552 + i32.const -1082130433 + f32.reinterpret_i32 f32.const inf f32.const 0 f32.const 0 @@ -45166,7 +45996,8 @@ call $~lib/builtins/abort unreachable end - f32.const -1.401298464324817e-45 + i32.const -2147483647 + f32.reinterpret_i32 f32.const inf f32.const 0 f32.const 0 @@ -45197,7 +46028,8 @@ unreachable end f32.const 0 - f32.const 1.401298464324817e-45 + i32.const 1 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -45212,7 +46044,8 @@ unreachable end f32.const -0 - f32.const 1.401298464324817e-45 + i32.const 1 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -45227,10 +46060,11 @@ unreachable end f32.const 0 - f32.const -3402823466385288598117041e14 + i32.const -8388609 + f32.reinterpret_i32 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45242,10 +46076,11 @@ unreachable end f32.const 0 - f32.const -1.401298464324817e-45 + i32.const -2147483647 + f32.reinterpret_i32 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45257,10 +46092,11 @@ unreachable end f32.const -0 - f32.const -3402823466385288598117041e14 + i32.const -8388609 + f32.reinterpret_i32 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45275,7 +46111,7 @@ f32.const -2 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45287,10 +46123,11 @@ unreachable end f32.const -0 - f32.const -1.401298464324817e-45 + i32.const -2147483647 + f32.reinterpret_i32 f32.const inf f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45303,9 +46140,10 @@ end f32.const -0 f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45317,10 +46155,12 @@ unreachable end f32.const -0 - f32.const -17 - f32.const -inf + i32.const -1048051712 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 - i32.const 4 + global.get $std/math/DIVBYZERO call $std/math/test_powf i32.eqz if @@ -45332,7 +46172,8 @@ unreachable end f32.const inf - f32.const 1.401298464324817e-45 + i32.const 1 + f32.reinterpret_i32 f32.const inf f32.const 0 i32.const 0 @@ -45347,7 +46188,8 @@ unreachable end f32.const inf - f32.const -1.401298464324817e-45 + i32.const -2147483647 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -45361,8 +46203,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const 3402823466385288598117041e14 + f32.const inf + f32.neg + i32.const 2139095039 + f32.reinterpret_i32 f32.const inf f32.const 0 i32.const 0 @@ -45376,8 +46220,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const 1.401298464324817e-45 + f32.const inf + f32.neg + i32.const 1 + f32.reinterpret_i32 f32.const inf f32.const 0 i32.const 0 @@ -45391,8 +46237,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -3402823466385288598117041e14 + f32.const inf + f32.neg + i32.const -8388609 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -45406,8 +46254,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -1.401298464324817e-45 + f32.const inf + f32.neg + i32.const -2147483647 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -45421,9 +46271,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const 5 - f32.const -inf + f32.const inf + f32.neg + i32.const 1084227584 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_powf @@ -45436,8 +46289,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -5 + f32.const inf + f32.neg + i32.const -1063256064 + f32.reinterpret_i32 f32.const -0 f32.const 0 i32.const 0 @@ -45451,8 +46306,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const 6 + f32.const inf + f32.neg + i32.const 1086324736 + f32.reinterpret_i32 f32.const inf f32.const 0 i32.const 0 @@ -45466,8 +46323,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -6 + f32.const inf + f32.neg + i32.const -1061158912 + f32.reinterpret_i32 f32.const 0 f32.const 0 i32.const 0 @@ -45481,8 +46340,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const 2.000000238418579 + f32.const inf + f32.neg + i32.const 1073741825 + f32.reinterpret_i32 f32.const inf f32.const 0 i32.const 0 @@ -45497,10 +46358,11 @@ unreachable end f32.const -1 - f32.const 1.0000001192092896 + i32.const 1065353217 + f32.reinterpret_i32 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -45511,11 +46373,13 @@ call $~lib/builtins/abort unreachable end - f32.const -1.401298464324817e-45 - f32.const -1.9999998807907104 + i32.const -2147483647 + f32.reinterpret_i32 + i32.const -1073741825 + f32.reinterpret_i32 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_powf i32.eqz if @@ -45526,11 +46390,16 @@ call $~lib/builtins/abort unreachable end - f32.const -10 - f32.const 309 - f32.const -inf + i32.const -1054867456 + f32.reinterpret_i32 + i32.const 1134198784 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 - i32.const 17 + global.get $std/math/INEXACT + global.get $std/math/OVERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -45541,7 +46410,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0.5 f32.const inf f32.const 0 @@ -45556,9 +46426,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2.802596928649634e-45 + i32.const 2 + f32.reinterpret_i32 f32.const 0.5 - f32.const 5.293955920339377e-23 + i32.const 444596224 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45571,9 +46443,11 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1210387714598537e-44 + i32.const 8 + f32.reinterpret_i32 f32.const 0.5 - f32.const 1.0587911840678754e-22 + i32.const 452984832 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45586,9 +46460,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2.938735877055719e-39 + i32.const 2097152 + f32.reinterpret_i32 f32.const 0.5 - f32.const 5.421010862427522e-20 + i32.const 528482304 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45601,9 +46477,11 @@ call $~lib/builtins/abort unreachable end - f32.const 5.877471754111438e-39 + i32.const 4194304 + f32.reinterpret_i32 f32.const -1 - f32.const 1701411834604692317316873e14 + i32.const 2130706432 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45616,9 +46494,11 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 0.5 - f32.const 1.0842021724855044e-19 + i32.const 536870912 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45631,9 +46511,11 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const -1 - f32.const 8507059173023461586584365e13 + i32.const 2122317824 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45646,9 +46528,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2.350988701644575e-38 + i32.const 16777216 + f32.reinterpret_i32 f32.const -1 - f32.const 4253529586511730793292182e13 + i32.const 2113929216 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45661,9 +46545,11 @@ call $~lib/builtins/abort unreachable end - f32.const 4.70197740328915e-38 + i32.const 25165824 + f32.reinterpret_i32 f32.const 0.5 - f32.const 2.168404344971009e-19 + i32.const 545259520 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45676,9 +46562,11 @@ call $~lib/builtins/abort unreachable end - f32.const 4.70197740328915e-38 + i32.const 25165824 + f32.reinterpret_i32 f32.const -1 - f32.const 2126764793255865396646091e13 + i32.const 2105540608 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45691,9 +46579,11 @@ call $~lib/builtins/abort unreachable end - f32.const 5.293955920339377e-23 + i32.const 444596224 + f32.reinterpret_i32 f32.const 2 - f32.const 2.802596928649634e-45 + i32.const 2 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45706,9 +46596,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2.168404344971009e-19 + i32.const 545259520 + f32.reinterpret_i32 f32.const 0.5 - f32.const 4.656612873077393e-10 + i32.const 805306368 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45721,9 +46613,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2.3283064365386963e-10 + i32.const 796917760 + f32.reinterpret_i32 f32.const 2 - f32.const 5.421010862427522e-20 + i32.const 528482304 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45736,9 +46630,11 @@ call $~lib/builtins/abort unreachable end - f32.const 4.656612873077393e-10 + i32.const 805306368 + f32.reinterpret_i32 f32.const 2 - f32.const 2.168404344971009e-19 + i32.const 545259520 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45751,9 +46647,11 @@ call $~lib/builtins/abort unreachable end - f32.const 1.1920928955078125e-07 + i32.const 872415232 + f32.reinterpret_i32 f32.const -1 - f32.const 8388608 + i32.const 1258291200 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45766,9 +46664,11 @@ call $~lib/builtins/abort unreachable end - f32.const 0.000034332275390625 + i32.const 940572672 + f32.reinterpret_i32 f32.const 0.5 - f32.const 0.005859375 + i32.const 1002438656 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45781,9 +46681,11 @@ call $~lib/builtins/abort unreachable end - f32.const 0.00006103515625 + i32.const 947912704 + f32.reinterpret_i32 f32.const 0.5 - f32.const 0.0078125 + i32.const 1006632960 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45796,9 +46698,11 @@ call $~lib/builtins/abort unreachable end - f32.const 0.00390625 + i32.const 998244352 + f32.reinterpret_i32 f32.const 0.5 - f32.const 0.0625 + i32.const 1031798784 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45811,9 +46715,11 @@ call $~lib/builtins/abort unreachable end - f32.const 0.03515625 + i32.const 1024458752 + f32.reinterpret_i32 f32.const 0.5 - f32.const 0.1875 + i32.const 1044381696 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45856,9 +46762,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2126764793255865396646091e13 + i32.const 2105540608 + f32.reinterpret_i32 f32.const 0.5 - f32.const 4611686018427387904 + i32.const 1585446912 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45871,9 +46779,11 @@ call $~lib/builtins/abort unreachable end - f32.const 2126764793255865396646091e13 + i32.const 2105540608 + f32.reinterpret_i32 f32.const -1 - f32.const 4.70197740328915e-38 + i32.const 25165824 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45886,7 +46796,8 @@ call $~lib/builtins/abort unreachable end - f32.const 4253529586511730793292182e13 + i32.const 2113929216 + f32.reinterpret_i32 f32.const inf f32.const inf f32.const 0 @@ -45901,9 +46812,11 @@ call $~lib/builtins/abort unreachable end - f32.const 4253529586511730793292182e13 + i32.const 2113929216 + f32.reinterpret_i32 f32.const -1 - f32.const 2.350988701644575e-38 + i32.const 16777216 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45916,8 +46829,10 @@ call $~lib/builtins/abort unreachable end - f32.const 4253529586511730793292182e13 - f32.const -inf + i32.const 2113929216 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -45931,9 +46846,11 @@ call $~lib/builtins/abort unreachable end - f32.const 8507059173023461586584365e13 + i32.const 2122317824 + f32.reinterpret_i32 f32.const 0.5 - f32.const 9223372036854775808 + i32.const 1593835520 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45946,9 +46863,11 @@ call $~lib/builtins/abort unreachable end - f32.const 8507059173023461586584365e13 + i32.const 2122317824 + f32.reinterpret_i32 f32.const -1 - f32.const 1.1754943508222875e-38 + i32.const 8388608 + f32.reinterpret_i32 f32.const 0 i32.const 0 call $std/math/test_powf @@ -45961,7 +46880,8 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + i32.const 2139095039 + f32.reinterpret_i32 f32.const inf f32.const inf f32.const 0 @@ -45976,8 +46896,10 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 - f32.const -inf + i32.const 2139095039 + f32.reinterpret_i32 + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -45991,11 +46913,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 + i32.const 2130706432 + f32.reinterpret_i32 f32.const -2 f32.const 0 - f32.const -2.465190328815662e-32 - i32.const 9 + i32.const -1962934272 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46006,11 +46932,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -3 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1069547520 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46021,11 +46951,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -255 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1015087104 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46036,11 +46970,14 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 + i32.const 2130706432 + f32.reinterpret_i32 f32.const -256 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46051,11 +46988,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -257 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1014988800 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46066,11 +47007,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -260 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1014890496 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46081,11 +47026,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -261 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -1014857728 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46096,11 +47045,15 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 - f32.const -32767 + i32.const 2130706432 + f32.reinterpret_i32 + i32.const -956301824 + f32.reinterpret_i32 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46111,11 +47064,14 @@ call $~lib/builtins/abort unreachable end - f32.const 1701411834604692317316873e14 + i32.const 2130706432 + f32.reinterpret_i32 f32.const -32768 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46126,11 +47082,16 @@ call $~lib/builtins/abort unreachable end - f32.const 3402822046616616342500112e14 + i32.const 2139095032 + f32.reinterpret_i32 f32.const -1 - f32.const 2.938737278354183e-39 - f32.const -4.768373855768004e-07 - i32.const 9 + i32.const 2097153 + f32.reinterpret_i32 + i32.const -1258291196 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46141,11 +47102,15 @@ call $~lib/builtins/abort unreachable end - f32.const 3402822046616616342500112e14 + i32.const 2139095032 + f32.reinterpret_i32 f32.const -2 f32.const 0 - f32.const -6.162981699510909e-33 - i32.const 9 + i32.const -1979711480 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46156,11 +47121,15 @@ call $~lib/builtins/abort unreachable end - f32.const -1701411834604692317316873e14 - f32.const -32767 + i32.const -16777216 + f32.reinterpret_i32 + i32.const -956301824 + f32.reinterpret_i32 f32.const -0 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46171,11 +47140,14 @@ call $~lib/builtins/abort unreachable end - f32.const -1701411834604692317316873e14 + i32.const -16777216 + f32.reinterpret_i32 f32.const -32768 f32.const 0 f32.const -0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46186,11 +47158,16 @@ call $~lib/builtins/abort unreachable end - f32.const -3402822046616616342500112e14 + i32.const -8388616 + f32.reinterpret_i32 f32.const -1 - f32.const -2.938737278354183e-39 - f32.const 4.768373855768004e-07 - i32.const 9 + i32.const -2145386495 + f32.reinterpret_i32 + i32.const 889192452 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46201,11 +47178,15 @@ call $~lib/builtins/abort unreachable end - f32.const -3402822046616616342500112e14 + i32.const -8388616 + f32.reinterpret_i32 f32.const -2 f32.const 0 - f32.const -6.162981699510909e-33 - i32.const 9 + i32.const -1979711480 + f32.reinterpret_i32 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_powf i32.eqz if @@ -46303,7 +47284,7 @@ f64.const -8.06684839057968 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46317,7 +47298,7 @@ f64.const 4.345239849338305 f64.const 4 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46331,7 +47312,7 @@ f64.const -8.38143342755525 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46345,7 +47326,7 @@ f64.const -6.531673581913484 f64.const -7 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46359,7 +47340,7 @@ f64.const 9.267056966972586 f64.const 9 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46373,7 +47354,7 @@ f64.const 0.6619858980995045 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46387,7 +47368,7 @@ f64.const -0.4066039223853553 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46401,7 +47382,7 @@ f64.const 0.5617597462207241 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46415,7 +47396,7 @@ f64.const 0.7741522965913037 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46429,7 +47410,7 @@ f64.const -0.6787637026394024 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46468,8 +47449,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_round @@ -46541,7 +47524,7 @@ f64.const 0.5 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46555,7 +47538,7 @@ f64.const -0.5 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46569,7 +47552,7 @@ f64.const 1.5 f64.const 2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46583,7 +47566,7 @@ f64.const -1.5 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46597,7 +47580,7 @@ f64.const 1.0000152587890625 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46611,7 +47594,7 @@ f64.const -1.0000152587890625 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46625,7 +47608,7 @@ f64.const 0.9999923706054688 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46639,7 +47622,7 @@ f64.const -0.9999923706054688 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46653,7 +47636,7 @@ f64.const 7.888609052210118e-31 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46667,7 +47650,7 @@ f64.const -7.888609052210118e-31 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46681,7 +47664,7 @@ f32.const -8.066848754882812 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46695,7 +47678,7 @@ f32.const 4.345239639282227 f32.const 4 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46709,7 +47692,7 @@ f32.const -8.381433486938477 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46723,7 +47706,7 @@ f32.const -6.531673431396484 f32.const -7 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46737,7 +47720,7 @@ f32.const 9.267057418823242 f32.const 9 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46751,7 +47734,7 @@ f32.const 0.6619858741760254 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46765,7 +47748,7 @@ f32.const -0.40660393238067627 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46779,7 +47762,7 @@ f32.const 0.5617597699165344 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46793,7 +47776,7 @@ f32.const 0.7741522789001465 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46807,7 +47790,7 @@ f32.const -0.6787636876106262 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46846,8 +47829,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_roundf @@ -46919,7 +47904,7 @@ f32.const 0.5 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46933,7 +47918,7 @@ f32.const -0.5 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46947,7 +47932,7 @@ f64.const 1.5 f64.const 2 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46961,7 +47946,7 @@ f64.const -1.5 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_round i32.eqz if @@ -46975,7 +47960,7 @@ f32.const 1.0000152587890625 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -46989,7 +47974,7 @@ f32.const -1.0000152587890625 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -47003,7 +47988,7 @@ f32.const 0.9999923706054688 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -47017,7 +48002,7 @@ f32.const -0.9999923706054688 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -47031,7 +48016,7 @@ f32.const 7.888609052210118e-31 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -47045,7 +48030,7 @@ f32.const -7.888609052210118e-31 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_roundf i32.eqz if @@ -47154,7 +48139,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -47280,7 +48266,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -47323,15 +48310,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3127 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const -0 local.set $0 local.get $0 @@ -47347,15 +48326,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3128 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const 1 local.set $0 local.get $0 @@ -47371,15 +48342,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3129 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const -1 local.set $0 local.get $0 @@ -47395,15 +48358,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3130 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const nan:0x8000000000000 local.set $0 local.get $0 @@ -47419,16 +48374,9 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3131 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const -nan:0x8000000000000 + drop + f64.const nan:0x8000000000000 + f64.neg local.set $0 local.get $0 i64.reinterpret_f64 @@ -47443,15 +48391,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3132 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const inf local.set $0 local.get $0 @@ -47467,16 +48407,9 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3133 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f64.const -inf + drop + f64.const inf + f64.neg local.set $0 local.get $0 i64.reinterpret_f64 @@ -47491,15 +48424,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3134 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const 0 local.set $4 local.get $4 @@ -47514,15 +48439,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3140 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const -0 local.set $4 local.get $4 @@ -47537,15 +48454,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3141 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const 1 local.set $4 local.get $4 @@ -47560,15 +48469,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3142 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const -1 local.set $4 local.get $4 @@ -47583,15 +48484,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3143 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const nan:0x400000 local.set $4 local.get $4 @@ -47606,16 +48499,9 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3144 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f32.const -nan:0x400000 + drop + f32.const nan:0x400000 + f32.neg local.set $4 local.get $4 i32.reinterpret_f32 @@ -47629,15 +48515,7 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3145 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f32.const inf local.set $4 local.get $4 @@ -47652,16 +48530,9 @@ i32.ne i32.const 0 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3146 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - f32.const -inf + drop + f32.const inf + f32.neg local.set $4 local.get $4 i32.reinterpret_f32 @@ -47675,15 +48546,7 @@ i32.ne i32.const 1 i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 3147 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop f64.const -8.06684839057968 f64.const 4.535662560676869 f64.const 1.0044767307740567 @@ -47988,7 +48851,7 @@ f64.const 1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -47999,11 +48862,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48183,7 +49047,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48194,11 +49058,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48228,7 +49093,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48243,7 +49108,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48270,7 +49135,8 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const 0 i32.const 0 @@ -48303,7 +49169,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48318,7 +49184,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48345,7 +49211,8 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const 0 i32.const 0 @@ -48378,7 +49245,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48393,7 +49260,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48408,7 +49275,7 @@ f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48419,11 +49286,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48453,7 +49321,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48468,7 +49336,7 @@ f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48479,11 +49347,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48513,7 +49382,7 @@ f64.const 2 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48528,7 +49397,7 @@ f64.const -0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48554,11 +49423,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 2 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48569,11 +49439,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0.5 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48584,7 +49455,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 @@ -48678,7 +49550,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48689,11 +49561,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48705,7 +49578,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const 0 i32.const 0 @@ -48720,7 +49594,8 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -48735,10 +49610,11 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -48749,11 +49625,13 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_rem i32.eqz if @@ -49143,7 +50021,7 @@ f32.const 1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49154,11 +50032,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49338,7 +50217,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49349,11 +50228,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49383,7 +50263,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49398,7 +50278,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49425,7 +50305,8 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const 0 i32.const 0 @@ -49458,7 +50339,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49473,7 +50354,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49500,7 +50381,8 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const 0 i32.const 0 @@ -49533,7 +50415,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49548,7 +50430,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49563,7 +50445,7 @@ f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49574,11 +50456,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49608,7 +50491,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49623,7 +50506,7 @@ f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49634,11 +50517,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49668,7 +50552,7 @@ f32.const 2 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49683,7 +50567,7 @@ f32.const -0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49709,11 +50593,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 2 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49724,11 +50609,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0.5 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49739,7 +50625,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 @@ -49833,7 +50720,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49844,11 +50731,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49860,7 +50748,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const 0 i32.const 0 @@ -49875,7 +50764,8 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -49890,10 +50780,11 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49904,11 +50795,13 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_remf i32.eqz if @@ -49997,7 +50890,7 @@ f64.const -8.06684839057968 f64.const -0.9774292928781227 f64.const -0.14564912021160126 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50011,7 +50904,7 @@ f64.const 4.345239849338305 f64.const -0.9333544736965718 f64.const -0.08813747018575668 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50025,7 +50918,7 @@ f64.const -8.38143342755525 f64.const -0.8640924711706304 f64.const -0.11743883043527603 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50039,7 +50932,7 @@ f64.const -6.531673581913484 f64.const -0.24593894772615374 f64.const -0.12697851657867432 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50053,7 +50946,7 @@ f64.const 9.267056966972586 f64.const 0.15706789772028007 f64.const -0.029550159350037575 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50067,7 +50960,7 @@ f64.const 0.6619858980995045 f64.const 0.6146844860113447 f64.const -0.09976737946271896 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50081,7 +50974,7 @@ f64.const -0.4066039223853553 f64.const -0.39549242182823696 f64.const -0.3668774962425232 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50095,7 +50988,7 @@ f64.const 0.5617597462207241 f64.const 0.5326763286672376 f64.const -0.3550407588481903 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50109,7 +51002,7 @@ f64.const 0.7741522965913037 f64.const 0.6991102068649779 f64.const -0.427672415971756 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50123,7 +51016,7 @@ f64.const -0.6787637026394024 f64.const -0.6278312326301215 f64.const -0.3828115463256836 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50137,7 +51030,7 @@ f64.const 9.313225746154785e-10 f64.const 9.313225746154785e-10 f64.const 6.510416860692203e-04 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50151,7 +51044,7 @@ f64.const -9.313225746154785e-10 f64.const -9.313225746154785e-10 f64.const -6.510416860692203e-04 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50165,7 +51058,7 @@ f64.const 2.2250738585072014e-308 f64.const 2.2250738585072014e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50179,7 +51072,7 @@ f64.const -2.2250738585072014e-308 f64.const -2.2250738585072014e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50193,7 +51086,9 @@ f64.const 5e-324 f64.const 5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50207,7 +51102,9 @@ f64.const -5e-324 f64.const -5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50249,7 +51146,7 @@ f64.const 2.225073858507202e-308 f64.const 2.225073858507202e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50263,7 +51160,7 @@ f64.const 2.2250738585072024e-308 f64.const 2.2250738585072024e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50277,7 +51174,7 @@ f64.const 4.4501477170144003e-308 f64.const 4.4501477170144003e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50291,7 +51188,7 @@ f64.const 4.450147717014403e-308 f64.const 4.450147717014403e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50305,7 +51202,7 @@ f64.const 4.450147717014406e-308 f64.const 4.450147717014406e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50319,7 +51216,7 @@ f64.const 8.900295434028806e-308 f64.const 8.900295434028806e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50333,7 +51230,7 @@ f64.const 1.1175870895385742e-08 f64.const 1.1175870895385742e-08 f64.const 0.140625 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50347,7 +51244,7 @@ f64.const 1.4901161193847656e-08 f64.const 1.4901161193847656e-08 f64.const 0.1666666716337204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50361,7 +51258,7 @@ f64.const -2.225073858507202e-308 f64.const -2.225073858507202e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50375,7 +51272,7 @@ f64.const -2.2250738585072024e-308 f64.const -2.2250738585072024e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50389,7 +51286,7 @@ f64.const -4.4501477170144003e-308 f64.const -4.4501477170144003e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50403,7 +51300,7 @@ f64.const -4.450147717014403e-308 f64.const -4.450147717014403e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50417,7 +51314,7 @@ f64.const -4.450147717014406e-308 f64.const -4.450147717014406e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50431,7 +51328,7 @@ f64.const -8.900295434028806e-308 f64.const -8.900295434028806e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50445,7 +51342,7 @@ f64.const -1.1175870895385742e-08 f64.const -1.1175870895385742e-08 f64.const -0.140625 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50459,7 +51356,7 @@ f64.const -1.4901161193847656e-08 f64.const -1.4901161193847656e-08 f64.const -0.1666666716337204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50473,7 +51370,7 @@ f64.const -1.4901161193847656e-08 f64.const -1.4901161193847656e-08 f64.const -0.1666666716337204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sin i32.eqz if @@ -50487,7 +51384,9 @@ f64.const 1e-323 f64.const 1e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50501,7 +51400,9 @@ f64.const 4.4e-323 f64.const 4.4e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50515,7 +51416,9 @@ f64.const 5.562684646268003e-309 f64.const 5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50529,7 +51432,9 @@ f64.const 1.1125369292536007e-308 f64.const 1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50543,7 +51448,9 @@ f64.const 2.2250738585072004e-308 f64.const 2.2250738585072004e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50557,7 +51464,9 @@ f64.const 2.225073858507201e-308 f64.const 2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50571,7 +51480,9 @@ f64.const -1e-323 f64.const -1e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50585,7 +51496,9 @@ f64.const -4.4e-323 f64.const -4.4e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50599,7 +51512,9 @@ f64.const -5.562684646268003e-309 f64.const -5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50613,7 +51528,9 @@ f64.const -1.1125369292536007e-308 f64.const -1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50627,7 +51544,9 @@ f64.const -2.2250738585072004e-308 f64.const -2.2250738585072004e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50641,7 +51560,9 @@ f64.const -2.225073858507201e-308 f64.const -2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sin i32.eqz if @@ -50683,7 +51604,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sin i32.eqz if @@ -50694,10 +51615,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sin i32.eqz if @@ -50722,9 +51644,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/math/NativeMath.sin - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/bindings/Math/sin f64.eq i32.eqz @@ -50736,9 +51662,17 @@ call $~lib/builtins/abort unreachable end - f64.const 3.141592653589793 + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div call $~lib/math/NativeMath.sin - f64.const 3.141592653589793 + f64.const 2 + global.get $std/math/kPI + f64.mul + f64.const 2 + f64.div call $~lib/bindings/Math/sin f64.eq i32.eqz @@ -50829,7 +51763,9 @@ unreachable end f64.const 1 - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50842,7 +51778,10 @@ unreachable end f64.const -1 - f64.const -1.5707963267948966 + global.get $std/math/kPI + f64.neg + f64.const 2 + f64.div call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50855,7 +51794,7 @@ unreachable end f64.const 1.2246467991473532e-16 - f64.const 3.141592653589793 + global.get $std/math/kPI call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50868,7 +51807,9 @@ unreachable end f64.const -7.047032979958965e-14 - f64.const 6911.503837897545 + f64.const 2200 + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50881,7 +51822,11 @@ unreachable end f64.const -0.7071067811865477 - f64.const 5.497787143782138 + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50894,7 +51839,11 @@ unreachable end f64.const 0.7071067811865474 - f64.const 7.0685834705770345 + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50907,7 +51856,11 @@ unreachable end f64.const 0.7071067811865483 - f64.const 8.63937979737193 + f64.const 11 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50920,7 +51873,11 @@ unreachable end f64.const -0.7071067811865479 - f64.const 10.210176124166829 + f64.const 13 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50933,7 +51890,11 @@ unreachable end f64.const -3.2103381051568376e-11 - f64.const 823549.6645826427 + f64.const 1048576 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50946,7 +51907,7 @@ unreachable end f64.const 0.377820109360752 - f64.const 1329227995784915872903807e12 + global.get $std/math/kTwo120 call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50959,7 +51920,8 @@ unreachable end f64.const -0.377820109360752 - f64.const -1329227995784915872903807e12 + global.get $std/math/kTwo120 + f64.neg call $~lib/math/NativeMath.sin f64.eq i32.eqz @@ -50974,7 +51936,7 @@ f32.const -8.066848754882812 f32.const -0.977429211139679 f32.const 0.0801057294011116 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -50988,7 +51950,7 @@ f32.const 4.345239639282227 f32.const -0.933354377746582 f32.const 0.34475627541542053 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51002,7 +51964,7 @@ f32.const -8.381433486938477 f32.const -0.8640924692153931 f32.const -0.468659907579422 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51016,7 +51978,7 @@ f32.const -6.531673431396484 f32.const -0.24593880772590637 f32.const -0.3955177664756775 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51030,7 +51992,7 @@ f32.const 9.267057418823242 f32.const 0.1570674479007721 f32.const -0.24006809294223785 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51044,7 +52006,7 @@ f32.const 0.6619858741760254 f32.const 0.6146844625473022 f32.const -0.07707194238901138 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51058,7 +52020,7 @@ f32.const -0.40660393238067627 f32.const -0.39549243450164795 f32.const -0.11720617115497589 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51072,7 +52034,7 @@ f32.const 0.5617597699165344 f32.const 0.5326763391494751 f32.const -0.16059114038944244 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51086,7 +52048,7 @@ f32.const 0.7741522789001465 f32.const 0.699110209941864 f32.const 0.26384368538856506 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51100,7 +52062,7 @@ f32.const -0.6787636876106262 f32.const -0.627831220626831 f32.const 0.005127954296767712 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51142,7 +52104,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sinf i32.eqz if @@ -51153,10 +52115,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sinf i32.eqz if @@ -51184,7 +52147,7 @@ f32.const 1.862645149230957e-09 f32.const 1.862645149230957e-09 f32.const 4.850638554015907e-12 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51198,7 +52161,7 @@ f32.const -1.862645149230957e-09 f32.const -1.862645149230957e-09 f32.const -4.850638554015907e-12 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51212,7 +52175,7 @@ f32.const 1.1754943508222875e-38 f32.const 1.1754943508222875e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51226,7 +52189,7 @@ f32.const -1.1754943508222875e-38 f32.const -1.1754943508222875e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51240,7 +52203,9 @@ f32.const 1.401298464324817e-45 f32.const 1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51254,7 +52219,9 @@ f32.const -1.401298464324817e-45 f32.const -1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51268,7 +52235,7 @@ f32.const 1.175494490952134e-38 f32.const 1.175494490952134e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51282,7 +52249,7 @@ f32.const 1.1754946310819804e-38 f32.const 1.1754946310819804e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51296,7 +52263,7 @@ f32.const 2.3509880009953429e-38 f32.const 2.3509880009953429e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51310,7 +52277,7 @@ f32.const 2.350988701644575e-38 f32.const 2.350988701644575e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51324,7 +52291,7 @@ f32.const 2.3509895424236536e-38 f32.const 2.3509895424236536e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51338,7 +52305,7 @@ f32.const 4.70197740328915e-38 f32.const 4.70197740328915e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51352,7 +52319,7 @@ f32.const 1.1175870895385742e-08 f32.const 1.1175870895385742e-08 f32.const 2.6193447411060333e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51366,7 +52333,7 @@ f32.const 1.4901161193847656e-08 f32.const 1.4901161193847656e-08 f32.const 3.1044086745701804e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51380,7 +52347,7 @@ f32.const 0.000244140625 f32.const 0.000244140625 f32.const 0.0833333358168602 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51394,7 +52361,7 @@ f32.const 0.0003662109375 f32.const 0.0003662109375 f32.const 0.28125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51408,7 +52375,7 @@ f32.const -1.175494490952134e-38 f32.const -1.175494490952134e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51422,7 +52389,7 @@ f32.const -1.1754946310819804e-38 f32.const -1.1754946310819804e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51436,7 +52403,7 @@ f32.const -2.3509880009953429e-38 f32.const -2.3509880009953429e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51450,7 +52417,7 @@ f32.const -2.350988701644575e-38 f32.const -2.350988701644575e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51464,7 +52431,7 @@ f32.const -2.3509895424236536e-38 f32.const -2.3509895424236536e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51478,7 +52445,7 @@ f32.const -4.70197740328915e-38 f32.const -4.70197740328915e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51492,7 +52459,7 @@ f32.const -1.1175870895385742e-08 f32.const -1.1175870895385742e-08 f32.const -2.6193447411060333e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51506,7 +52473,7 @@ f32.const -1.4901161193847656e-08 f32.const -1.4901161193847656e-08 f32.const -3.1044086745701804e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51520,7 +52487,7 @@ f32.const -0.000244140625 f32.const -0.000244140625 f32.const -0.0833333358168602 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51534,7 +52501,7 @@ f32.const -0.0003662109375 f32.const -0.0003662109375 f32.const -0.28125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51548,7 +52515,9 @@ f32.const 2.802596928649634e-45 f32.const 2.802596928649634e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51562,7 +52531,9 @@ f32.const 1.2611686178923354e-44 f32.const 1.2611686178923354e-44 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51576,7 +52547,9 @@ f32.const 2.938735877055719e-39 f32.const 2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51590,7 +52563,9 @@ f32.const 5.877471754111438e-39 f32.const 5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51604,7 +52579,9 @@ f32.const 1.1754940705625946e-38 f32.const 1.1754940705625946e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51618,7 +52595,9 @@ f32.const 1.1754942106924411e-38 f32.const 1.1754942106924411e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51632,7 +52611,9 @@ f32.const -2.802596928649634e-45 f32.const -2.802596928649634e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51646,7 +52627,9 @@ f32.const -1.2611686178923354e-44 f32.const -1.2611686178923354e-44 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51660,7 +52643,9 @@ f32.const -2.938735877055719e-39 f32.const -2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51674,7 +52659,9 @@ f32.const -5.877471754111438e-39 f32.const -5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51688,7 +52675,9 @@ f32.const -1.1754940705625946e-38 f32.const -1.1754940705625946e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51702,7 +52691,9 @@ f32.const -1.1754942106924411e-38 f32.const -1.1754942106924411e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_sinf i32.eqz if @@ -51716,7 +52707,7 @@ f32.const 255.99993896484375 f32.const -0.9992055892944336 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51730,7 +52721,7 @@ f32.const 5033165 f32.const 0.5312945246696472 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51744,7 +52735,7 @@ f32.const 421657440 f32.const -0.7397398948669434 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51758,7 +52749,7 @@ f32.const 2147483392 f32.const 0.2762770354747772 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51772,7 +52763,7 @@ f32.const 68719476736 f32.const 0.9855440855026245 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51786,7 +52777,7 @@ f32.const 549755813888 f32.const -0.9782648086547852 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51797,10 +52788,10 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE f32.const -0.5218765139579773 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51814,7 +52805,7 @@ f32.const -255.99993896484375 f32.const 0.9992055892944336 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51828,7 +52819,7 @@ f32.const -5033165 f32.const -0.5312945246696472 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51842,7 +52833,7 @@ f32.const -421657440 f32.const 0.7397398948669434 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51856,7 +52847,7 @@ f32.const -2147483392 f32.const -0.2762770354747772 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51870,7 +52861,7 @@ f32.const -68719476736 f32.const -0.9855440855026245 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51884,7 +52875,7 @@ f32.const -549755813888 f32.const 0.9782648086547852 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51895,10 +52886,11 @@ call $~lib/builtins/abort unreachable end - f32.const -3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg f32.const 0.5218765139579773 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinf i32.eqz if @@ -51912,7 +52904,7 @@ f64.const -8.06684839057968 f64.const -1593.5206801156262 f64.const -0.2138727605342865 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51926,7 +52918,7 @@ f64.const 4.345239849338305 f64.const 38.54878088685412 f64.const 0.21537430584430695 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51940,7 +52932,7 @@ f64.const -8.38143342755525 f64.const -2182.6307505145546 f64.const 0.16213826835155487 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51954,7 +52946,7 @@ f64.const -6.531673581913484 f64.const -343.2723926847529 f64.const 0.20479513704776764 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51968,7 +52960,7 @@ f64.const 9.267056966972586 f64.const 5291.7790755194055 f64.const -0.48676517605781555 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51982,7 +52974,7 @@ f64.const 0.6619858980995045 f64.const 0.7114062568229157 f64.const -0.4584641456604004 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -51996,7 +52988,7 @@ f64.const -0.4066039223853553 f64.const -0.41790065258739445 f64.const 0.37220045924186707 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -52010,7 +53002,7 @@ f64.const 0.5617597462207241 f64.const 0.5917755935451237 f64.const 0.46178996562957764 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -52024,7 +53016,7 @@ f64.const 0.7741522965913037 f64.const 0.8538292008852542 f64.const -0.07019051909446716 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -52038,7 +53030,7 @@ f64.const -0.6787637026394024 f64.const -0.732097615653169 f64.const 0.26858529448509216 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinh i32.eqz if @@ -52091,8 +53083,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_sinh @@ -52122,7 +53116,7 @@ f32.const -8.066848754882812 f32.const -1593.521240234375 f32.const 0.1671663224697113 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52136,7 +53130,7 @@ f32.const 4.345239639282227 f32.const 38.548770904541016 f32.const -0.49340328574180603 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52150,7 +53144,7 @@ f32.const -8.381433486938477 f32.const -2182.630859375 f32.const 0.0849970355629921 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52164,7 +53158,7 @@ f32.const -6.531673431396484 f32.const -343.2723388671875 f32.const 0.0704190656542778 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52178,7 +53172,7 @@ f32.const 9.267057418823242 f32.const 5291.78125 f32.const -0.44362515211105347 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52192,7 +53186,7 @@ f32.const 0.6619858741760254 f32.const 0.7114062309265137 f32.const 0.058103885501623154 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52206,7 +53200,7 @@ f32.const -0.40660393238067627 f32.const -0.4179006516933441 f32.const 0.39349499344825745 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52220,7 +53214,7 @@ f32.const 0.5617597699165344 f32.const 0.5917755961418152 f32.const -0.4183797240257263 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52234,7 +53228,7 @@ f32.const 0.7741522789001465 f32.const 0.8538292050361633 f32.const 0.45992106199264526 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52248,7 +53242,7 @@ f32.const -0.6787636876106262 f32.const -0.7320976257324219 f32.const -0.48159059882164 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sinhf i32.eqz if @@ -52301,8 +53295,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_sinhf @@ -52332,7 +53328,7 @@ f64.const -8.06684839057968 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52346,7 +53342,7 @@ f64.const 4.345239849338305 f64.const 2.0845238903256313 f64.const -0.07180261611938477 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52360,7 +53356,7 @@ f64.const -8.38143342755525 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52374,7 +53370,7 @@ f64.const -6.531673581913484 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52388,7 +53384,7 @@ f64.const 9.267056966972586 f64.const 3.0441841217266385 f64.const -0.01546262577176094 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52402,7 +53398,7 @@ f64.const 0.6619858980995045 f64.const 0.8136251582267503 f64.const -0.08618157356977463 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52416,7 +53412,7 @@ f64.const -0.4066039223853553 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52430,7 +53426,7 @@ f64.const 0.5617597462207241 f64.const 0.7495063350104014 f64.const -0.0981396734714508 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52444,7 +53440,7 @@ f64.const 0.7741522965913037 f64.const 0.879859248170583 f64.const -0.37124353647232056 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52458,7 +53454,7 @@ f64.const -0.6787637026394024 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52497,10 +53493,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52556,7 +53553,7 @@ f64.const -1 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52584,7 +53581,7 @@ f64.const 1e-323 f64.const 3.1434555694052576e-162 f64.const 0.43537619709968567 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52598,7 +53595,7 @@ f64.const 1.5e-323 f64.const 3.849931087076416e-162 f64.const -0.45194002985954285 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52626,7 +53623,7 @@ f64.const -5e-324 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52640,7 +53637,7 @@ f64.const 0.9999999999999999 f64.const 0.9999999999999999 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52654,7 +53651,7 @@ f64.const 1.9999999999999998 f64.const 1.414213562373095 f64.const -0.21107041835784912 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52668,7 +53665,7 @@ f64.const 1.0000000000000002 f64.const 1 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52682,7 +53679,7 @@ f64.const 2.0000000000000004 f64.const 1.4142135623730951 f64.const -0.27173060178756714 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52696,7 +53693,7 @@ f64.const 1.0000000000000002 f64.const 1 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52710,7 +53707,7 @@ f64.const 0.9999999999999999 f64.const 0.9999999999999999 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52724,7 +53721,7 @@ f64.const -1797693134862315708145274e284 f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrt i32.eqz if @@ -52738,7 +53735,7 @@ f64.const 1797693134862315708145274e284 f64.const 1340780792994259561100831e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52752,7 +53749,7 @@ f64.const 179769313486231490980915e285 f64.const 134078079299425926338769e131 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52766,7 +53763,7 @@ f64.const 1797693134862314111473026e284 f64.const 1340780792994258965674548e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52780,7 +53777,7 @@ f64.const 1797693134862313313136902e284 f64.const 1340780792994258667961407e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52794,7 +53791,7 @@ f64.const 1797693134862312514800778e284 f64.const 1340780792994258370248265e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52808,7 +53805,7 @@ f64.const 1797693134862311716464655e284 f64.const 1340780792994258072535124e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52822,7 +53819,7 @@ f64.const 1797693134862310918128531e284 f64.const 1340780792994257774821982e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52836,7 +53833,7 @@ f64.const 1797693134862310119792407e284 f64.const 1340780792994257477108841e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52850,7 +53847,7 @@ f64.const 1797693134862309321456283e284 f64.const 1340780792994257179395699e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52864,7 +53861,7 @@ f64.const 1797693134862308523120159e284 f64.const 1340780792994256881682558e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52878,7 +53875,7 @@ f64.const 1797693134862307724784036e284 f64.const 1340780792994256583969417e130 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52892,7 +53889,7 @@ f64.const 2.225073858507203e-308 f64.const 1.4916681462400417e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52906,7 +53903,7 @@ f64.const 2.225073858507205e-308 f64.const 1.4916681462400423e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52920,7 +53917,7 @@ f64.const 2.225073858507207e-308 f64.const 1.491668146240043e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52934,7 +53931,7 @@ f64.const 2.225073858507209e-308 f64.const 1.4916681462400437e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52948,7 +53945,7 @@ f64.const 2.225073858507211e-308 f64.const 1.4916681462400443e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52962,7 +53959,7 @@ f64.const 2.2250738585072127e-308 f64.const 1.491668146240045e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52976,7 +53973,7 @@ f64.const 2.2250738585072147e-308 f64.const 1.4916681462400457e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -52990,7 +53987,7 @@ f64.const 2.2250738585072167e-308 f64.const 1.4916681462400463e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53004,7 +54001,7 @@ f64.const 2.2250738585072187e-308 f64.const 1.491668146240047e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53018,7 +54015,7 @@ f64.const 2.2250738585072207e-308 f64.const 1.4916681462400476e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53032,7 +54029,7 @@ f64.const 2.2250738585072226e-308 f64.const 1.4916681462400483e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53046,7 +54043,7 @@ f64.const 2.2250738585072246e-308 f64.const 1.491668146240049e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53060,7 +54057,7 @@ f64.const 2.2250738585072266e-308 f64.const 1.4916681462400496e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53074,7 +54071,7 @@ f64.const 2.2250738585072286e-308 f64.const 1.4916681462400503e-154 f64.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53088,7 +54085,7 @@ f64.const 92.35130391890645 f64.const 9.609958580499006 f64.const 0.4998137056827545 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53102,7 +54099,7 @@ f64.const 93.3599596388916 f64.const 9.662295774757238 f64.const -0.49979978799819946 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53116,7 +54113,7 @@ f64.const 95.42049628886124 f64.const 9.76834153215689 f64.const -0.49997270107269287 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53130,7 +54127,7 @@ f64.const 95.87916941885449 f64.const 9.791790919890728 f64.const 0.4998766779899597 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53144,7 +54141,7 @@ f64.const 96.84804174884022 f64.const 9.841140266698785 f64.const 0.499801903963089 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53158,7 +54155,7 @@ f64.const 97.43639050883155 f64.const 9.87098731175517 f64.const 0.4997696280479431 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53172,7 +54169,7 @@ f64.const 97.50957979883047 f64.const 9.874693909120955 f64.const 0.49999818205833435 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53186,7 +54183,7 @@ f64.const 97.80496893882612 f64.const 9.88963947466368 f64.const -0.4999580681324005 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53200,7 +54197,7 @@ f64.const 98.2751822888192 f64.const 9.913383997849534 f64.const 0.49979931116104126 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53214,7 +54211,7 @@ f64.const 99.47293564880155 f64.const 9.973611966023219 f64.const -0.4999540448188782 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53228,7 +54225,7 @@ f64.const 100.57047130878539 f64.const 10.028483001370914 f64.const -0.49996453523635864 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53242,7 +54239,7 @@ f64.const 100.60954608878481 f64.const 10.030431002144665 f64.const 0.49975672364234924 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53256,7 +54253,7 @@ f64.const 100.67909109878379 f64.const 10.033897104255344 f64.const -0.4997771382331848 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53270,7 +54267,7 @@ f64.const 101.12268095877725 f64.const 10.055977374615422 f64.const 0.49988678097724915 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53284,7 +54281,7 @@ f64.const 101.3027691287746 f64.const 10.064927676281366 f64.const 0.4999105632305145 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53298,7 +54295,7 @@ f64.const 2.45932313565507e-307 f64.const 4.9591563149945874e-154 f64.const -0.4998999834060669 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53312,7 +54309,7 @@ f64.const 5.610957305180409e-307 f64.const 7.490632353266584e-154 f64.const -0.4999343752861023 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53326,7 +54323,7 @@ f64.const 5.8073887977408524e-307 f64.const 7.62062254526548e-154 f64.const -0.49989569187164307 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53340,7 +54337,7 @@ f64.const 7.026137080471427e-307 f64.const 8.382205605013174e-154 f64.const 0.49980640411376953 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53354,7 +54351,7 @@ f64.const 8.438697769194972e-307 f64.const 9.186238495268328e-154 f64.const -0.4999065697193146 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53368,7 +54365,7 @@ f64.const 1.1607792515836795e-306 f64.const 1.0773946591586944e-153 f64.const -0.49997684359550476 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53382,7 +54379,7 @@ f64.const 1.2827413827423193e-306 f64.const 1.1325817333606962e-153 f64.const -0.4999513030052185 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53396,7 +54393,7 @@ f64.const 1.7116604596087457e-306 f64.const 1.3083044216117078e-153 f64.const -0.49986395239830017 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53410,7 +54407,7 @@ f64.const 2.038173251686994e-306 f64.const 1.4276460526639628e-153 f64.const 0.4998403787612915 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53424,7 +54421,7 @@ f64.const 2.171572060856931e-306 f64.const 1.4736254818836879e-153 f64.const 0.4999290406703949 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53438,7 +54435,7 @@ f64.const 2.4681399631804094e-306 f64.const 1.5710314965589996e-153 f64.const 0.49989044666290283 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53452,7 +54449,7 @@ f64.const 2.5175533964200588e-306 f64.const 1.5866799918131124e-153 f64.const -0.4997701048851013 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53466,7 +54463,7 @@ f64.const 2.6461505468829625e-306 f64.const 1.6266992797941982e-153 f64.const 0.4998672902584076 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53480,7 +54477,7 @@ f64.const 3.8167076367720413e-306 f64.const 1.9536395872248397e-153 f64.const 0.49983471632003784 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53494,7 +54491,7 @@ f64.const 4.5743220778562766e-306 f64.const 2.1387664851161936e-153 f64.const 0.49985939264297485 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrt i32.eqz if @@ -53508,7 +54505,7 @@ f32.const -8.066848754882812 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53522,7 +54519,7 @@ f32.const 4.345239639282227 f32.const 2.084523916244507 f32.const 0.3200402557849884 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53536,7 +54533,7 @@ f32.const -8.381433486938477 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53550,7 +54547,7 @@ f32.const -6.531673431396484 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53564,7 +54561,7 @@ f32.const 9.267057418823242 f32.const 3.0441842079162598 f32.const 0.05022354796528816 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53578,7 +54575,7 @@ f32.const 0.6619858741760254 f32.const 0.813625156879425 f32.const 0.2240506112575531 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53592,7 +54589,7 @@ f32.const -0.40660393238067627 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53606,7 +54603,7 @@ f32.const 0.5617597699165344 f32.const 0.7495063543319702 f32.const 0.05895441770553589 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53620,7 +54617,7 @@ f32.const 0.7741522789001465 f32.const 0.879859209060669 f32.const -0.4874873757362366 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53634,7 +54631,7 @@ f32.const -0.6787636876106262 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53673,10 +54670,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53732,7 +54730,7 @@ f32.const -1 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53774,7 +54772,7 @@ f32.const 4.203895392974451e-45 f32.const 6.483745598763743e-23 f32.const 0.37388554215431213 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53788,7 +54786,7 @@ f32.const 1.401298464324817e-45 f32.const 3.743392066509216e-23 f32.const -0.20303145051002502 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53802,7 +54800,7 @@ f32.const -1.401298464324817e-45 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53816,7 +54814,7 @@ f32.const 3402823466385288598117041e14 f32.const 18446742974197923840 f32.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53830,7 +54828,7 @@ f32.const -3402823466385288598117041e14 f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_sqrtf i32.eqz if @@ -53844,7 +54842,7 @@ f32.const 0.9999998807907104 f32.const 0.9999999403953552 f32.const 2.980232594040899e-08 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53858,7 +54856,7 @@ f32.const 0.9999999403953552 f32.const 0.9999999403953552 f32.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53872,7 +54870,7 @@ f32.const 1.999999761581421 f32.const 1.4142134189605713 f32.const -0.4959246516227722 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53886,7 +54884,7 @@ f32.const 1.9999998807907104 f32.const 1.4142135381698608 f32.const 0.15052194893360138 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53900,7 +54898,7 @@ f32.const 1.0000001192092896 f32.const 1 f32.const -0.5 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53914,7 +54912,7 @@ f32.const 1.000000238418579 f32.const 1.0000001192092896 f32.const 5.960463766996327e-08 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53928,7 +54926,7 @@ f32.const 2.000000238418579 f32.const 1.4142136573791504 f32.const 0.08986179530620575 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53942,7 +54940,7 @@ f32.const 2.000000476837158 f32.const 1.41421377658844 f32.const 0.3827550709247589 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_sqrtf i32.eqz if @@ -53956,7 +54954,7 @@ f64.const -8.06684839057968 f64.const 4.626603542401633 f64.const -0.2727603316307068 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53970,7 +54968,7 @@ f64.const 4.345239849338305 f64.const 2.600191705822202 f64.const 0.2651003301143646 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53984,7 +54982,7 @@ f64.const -8.38143342755525 f64.const 1.7167408328741052 f64.const -0.24687519669532776 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -53998,7 +54996,7 @@ f64.const -6.531673581913484 f64.const -0.2537322523453725 f64.const -0.4679703712463379 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54012,7 +55010,7 @@ f64.const 9.267056966972586 f64.const -0.15904195727191958 f64.const -0.06704077869653702 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54026,7 +55024,7 @@ f64.const 0.6619858980995045 f64.const 0.7792919106910434 f64.const -0.038056135177612305 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54040,7 +55038,7 @@ f64.const -0.4066039223853553 f64.const -0.43059952879543656 f64.const -0.09242714196443558 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54054,7 +55052,7 @@ f64.const 0.5617597462207241 f64.const 0.62940368731874 f64.const -0.321913480758667 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54068,7 +55066,7 @@ f64.const 0.7741522965913037 f64.const 0.9777574652949645 f64.const -0.1966651827096939 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54082,7 +55080,7 @@ f64.const -0.6787637026394024 f64.const -0.8066186630209123 f64.const -0.067665696144104 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54096,7 +55094,7 @@ f64.const 9.313225746154785e-10 f64.const 9.313225746154785e-10 f64.const -1.3020833721384406e-03 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54110,7 +55108,7 @@ f64.const -9.313225746154785e-10 f64.const -9.313225746154785e-10 f64.const 1.3020833721384406e-03 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54124,7 +55122,7 @@ f64.const 2.2250738585072014e-308 f64.const 2.2250738585072014e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54138,7 +55136,7 @@ f64.const -2.2250738585072014e-308 f64.const -2.2250738585072014e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54152,7 +55150,9 @@ f64.const 5e-324 f64.const 5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54166,7 +55166,9 @@ f64.const -5e-324 f64.const -5e-324 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54208,7 +55210,7 @@ f64.const 0.7853981633974483 f64.const 0.9999999999999999 f64.const -0.4484681189060211 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54222,7 +55224,7 @@ f64.const -0.7853981633974483 f64.const -0.9999999999999999 f64.const 0.4484681189060211 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54236,7 +55238,7 @@ f64.const 2.225073858507202e-308 f64.const 2.225073858507202e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54250,7 +55252,7 @@ f64.const 2.2250738585072024e-308 f64.const 2.2250738585072024e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54264,7 +55266,7 @@ f64.const 4.4501477170144003e-308 f64.const 4.4501477170144003e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54278,7 +55280,7 @@ f64.const 4.450147717014403e-308 f64.const 4.450147717014403e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54292,7 +55294,7 @@ f64.const 4.450147717014406e-308 f64.const 4.450147717014406e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54306,7 +55308,7 @@ f64.const 8.900295434028806e-308 f64.const 8.900295434028806e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54320,7 +55322,7 @@ f64.const 1.1175870895385742e-08 f64.const 1.1175870895385742e-08 f64.const -0.28125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54334,7 +55336,7 @@ f64.const 1.4901161193847656e-08 f64.const 1.4901161193847656e-08 f64.const -0.3333333432674408 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54348,7 +55350,7 @@ f64.const -2.225073858507202e-308 f64.const -2.225073858507202e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54362,7 +55364,7 @@ f64.const -2.2250738585072024e-308 f64.const -2.2250738585072024e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54376,7 +55378,7 @@ f64.const -4.4501477170144003e-308 f64.const -4.4501477170144003e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54390,7 +55392,7 @@ f64.const -4.450147717014403e-308 f64.const -4.450147717014403e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54404,7 +55406,7 @@ f64.const -4.450147717014406e-308 f64.const -4.450147717014406e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54418,7 +55420,7 @@ f64.const -8.900295434028806e-308 f64.const -8.900295434028806e-308 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54432,7 +55434,7 @@ f64.const -1.1175870895385742e-08 f64.const -1.1175870895385742e-08 f64.const 0.28125 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54446,7 +55448,7 @@ f64.const -1.4901161193847656e-08 f64.const -1.4901161193847656e-08 f64.const 0.3333333432674408 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tan i32.eqz if @@ -54460,7 +55462,9 @@ f64.const 1e-323 f64.const 1e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54474,7 +55478,9 @@ f64.const 4.4e-323 f64.const 4.4e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54488,7 +55494,9 @@ f64.const 5.562684646268003e-309 f64.const 5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54502,7 +55510,9 @@ f64.const 1.1125369292536007e-308 f64.const 1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54516,7 +55526,9 @@ f64.const 2.2250738585072004e-308 f64.const 2.2250738585072004e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54530,7 +55542,9 @@ f64.const 2.225073858507201e-308 f64.const 2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54544,7 +55558,9 @@ f64.const -1e-323 f64.const -1e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54558,7 +55574,9 @@ f64.const -4.4e-323 f64.const -4.4e-323 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54572,7 +55590,9 @@ f64.const -5.562684646268003e-309 f64.const -5.562684646268003e-309 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54586,7 +55606,9 @@ f64.const -1.1125369292536007e-308 f64.const -1.1125369292536007e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54600,7 +55622,9 @@ f64.const -2.2250738585072004e-308 f64.const -2.2250738585072004e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54614,7 +55638,9 @@ f64.const -2.225073858507201e-308 f64.const -2.225073858507201e-308 f64.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tan i32.eqz if @@ -54653,9 +55679,13 @@ call $~lib/builtins/abort unreachable end - f64.const 0.6875 + f64.const 11 + f64.const 16 + f64.div call $~lib/math/NativeMath.tan - f64.const 0.6875 + f64.const 11 + f64.const 16 + f64.div call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54667,9 +55697,13 @@ call $~lib/builtins/abort unreachable end - f64.const -0.6875 + f64.const -11 + f64.const 16 + f64.div call $~lib/math/NativeMath.tan - f64.const -0.6875 + f64.const -11 + f64.const 16 + f64.div call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54723,9 +55757,13 @@ call $~lib/builtins/abort unreachable end - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/math/NativeMath.tan - f64.const 1.5707963267948966 + global.get $std/math/kPI + f64.const 2 + f64.div call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54765,9 +55803,17 @@ call $~lib/builtins/abort unreachable end - f64.const 5.497787143782138 + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.tan - f64.const 5.497787143782138 + f64.const 7 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54779,9 +55825,17 @@ call $~lib/builtins/abort unreachable end - f64.const 7.0685834705770345 + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.tan - f64.const 7.0685834705770345 + f64.const 9 + f64.const 4 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54793,9 +55847,17 @@ call $~lib/builtins/abort unreachable end - f64.const 1647099.3291652855 + f64.const 1048576 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.tan - f64.const 1647099.3291652855 + f64.const 1048576 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54807,9 +55869,17 @@ call $~lib/builtins/abort unreachable end - f64.const 1647097.7583689587 + f64.const 1048575 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/math/NativeMath.tan - f64.const 1647097.7583689587 + f64.const 1048575 + f64.const 2 + f64.div + global.get $std/math/kPI + f64.mul call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54821,9 +55891,9 @@ call $~lib/builtins/abort unreachable end - f64.const 1329227995784915872903807e12 + global.get $std/math/kTwo120 call $~lib/math/NativeMath.tan - f64.const 1329227995784915872903807e12 + global.get $std/math/kTwo120 call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54835,9 +55905,11 @@ call $~lib/builtins/abort unreachable end - f64.const -1329227995784915872903807e12 + global.get $std/math/kTwo120 + f64.neg call $~lib/math/NativeMath.tan - f64.const -1329227995784915872903807e12 + global.get $std/math/kTwo120 + f64.neg call $~lib/bindings/Math/tan f64.eq i32.eqz @@ -54880,7 +55952,7 @@ f64.const inf f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_tan i32.eqz if @@ -54891,10 +55963,11 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_tan i32.eqz if @@ -54922,7 +55995,7 @@ f32.const -8.066848754882812 f32.const 4.626595497131348 f32.const 0.2455666959285736 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54936,7 +56009,7 @@ f32.const 4.345239639282227 f32.const 2.6001901626586914 f32.const 0.3652407228946686 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54950,7 +56023,7 @@ f32.const -8.381433486938477 f32.const 1.716740608215332 f32.const 0.08169349282979965 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54964,7 +56037,7 @@ f32.const -6.531673431396484 f32.const -0.2537320852279663 f32.const 0.23186513781547546 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54978,7 +56051,7 @@ f32.const 9.267057418823242 f32.const -0.15904149413108826 f32.const -0.009332014247775078 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -54992,7 +56065,7 @@ f32.const 0.6619858741760254 f32.const 0.7792918682098389 f32.const -0.06759700924158096 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55006,7 +56079,7 @@ f32.const -0.40660393238067627 f32.const -0.43059954047203064 f32.const 0.005771996453404427 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55020,7 +56093,7 @@ f32.const 0.5617597699165344 f32.const 0.6294037103652954 f32.const -0.16838163137435913 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55034,7 +56107,7 @@ f32.const 0.7741522789001465 f32.const 0.977757453918457 f32.const 0.38969388604164124 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55048,7 +56121,7 @@ f32.const -0.6787636876106262 f32.const -0.8066186308860779 f32.const 0.12294059991836548 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55090,7 +56163,7 @@ f32.const inf f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_tanf i32.eqz if @@ -55101,10 +56174,11 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const 0 - i32.const 2 + global.get $std/math/INVALID call $std/math/test_tanf i32.eqz if @@ -55132,7 +56206,7 @@ f32.const 1.862645149230957e-09 f32.const 1.862645149230957e-09 f32.const -9.701277108031814e-12 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55146,7 +56220,7 @@ f32.const -1.862645149230957e-09 f32.const -1.862645149230957e-09 f32.const 9.701277108031814e-12 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55160,7 +56234,7 @@ f32.const 1.1754943508222875e-38 f32.const 1.1754943508222875e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55174,7 +56248,7 @@ f32.const -1.1754943508222875e-38 f32.const -1.1754943508222875e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55188,7 +56262,9 @@ f32.const 1.401298464324817e-45 f32.const 1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55202,7 +56278,9 @@ f32.const -1.401298464324817e-45 f32.const -1.401298464324817e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55216,7 +56294,7 @@ f32.const 1.175494490952134e-38 f32.const 1.175494490952134e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55230,7 +56308,7 @@ f32.const 1.1754946310819804e-38 f32.const 1.1754946310819804e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55244,7 +56322,7 @@ f32.const 2.3509880009953429e-38 f32.const 2.3509880009953429e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55258,7 +56336,7 @@ f32.const 2.350988701644575e-38 f32.const 2.350988701644575e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55272,7 +56350,7 @@ f32.const 2.3509895424236536e-38 f32.const 2.3509895424236536e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55286,7 +56364,7 @@ f32.const 4.70197740328915e-38 f32.const 4.70197740328915e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55300,7 +56378,7 @@ f32.const 1.1175870895385742e-08 f32.const 1.1175870895385742e-08 f32.const -5.238689482212067e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55314,7 +56392,7 @@ f32.const 1.4901161193847656e-08 f32.const 1.4901161193847656e-08 f32.const -6.208817349140361e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55328,7 +56406,7 @@ f32.const 0.000244140625 f32.const 0.000244140625 f32.const -0.1666666716337204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55342,7 +56420,7 @@ f32.const -1.175494490952134e-38 f32.const -1.175494490952134e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55356,7 +56434,7 @@ f32.const -1.1754946310819804e-38 f32.const -1.1754946310819804e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55370,7 +56448,7 @@ f32.const -2.3509880009953429e-38 f32.const -2.3509880009953429e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55384,7 +56462,7 @@ f32.const 2.350988701644575e-38 f32.const 2.350988701644575e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55398,7 +56476,7 @@ f32.const -2.3509895424236536e-38 f32.const -2.3509895424236536e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55412,7 +56490,7 @@ f32.const -4.70197740328915e-38 f32.const -4.70197740328915e-38 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55426,7 +56504,7 @@ f32.const -1.1175870895385742e-08 f32.const -1.1175870895385742e-08 f32.const 5.238689482212067e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55440,7 +56518,7 @@ f32.const -1.4901161193847656e-08 f32.const -1.4901161193847656e-08 f32.const 6.208817349140361e-10 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55454,7 +56532,7 @@ f32.const -0.000244140625 f32.const -0.000244140625 f32.const 0.1666666716337204 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanf i32.eqz if @@ -55468,7 +56546,9 @@ f32.const 2.802596928649634e-45 f32.const 2.802596928649634e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55482,7 +56562,9 @@ f32.const 1.2611686178923354e-44 f32.const 1.2611686178923354e-44 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55496,7 +56578,9 @@ f32.const 2.938735877055719e-39 f32.const 2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55510,7 +56594,9 @@ f32.const 5.877471754111438e-39 f32.const 5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55524,7 +56610,9 @@ f32.const 1.1754940705625946e-38 f32.const 1.1754940705625946e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55538,7 +56626,9 @@ f32.const 1.1754942106924411e-38 f32.const 1.1754942106924411e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55552,7 +56642,9 @@ f32.const -2.802596928649634e-45 f32.const -2.802596928649634e-45 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55566,7 +56658,9 @@ f32.const -1.2611686178923354e-44 f32.const -1.2611686178923354e-44 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55580,7 +56674,9 @@ f32.const -2.938735877055719e-39 f32.const -2.938735877055719e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55594,7 +56690,9 @@ f32.const -5.877471754111438e-39 f32.const -5.877471754111438e-39 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55608,7 +56706,9 @@ f32.const -1.1754940705625946e-38 f32.const -1.1754940705625946e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55622,7 +56722,9 @@ f32.const -1.1754942106924411e-38 f32.const -1.1754942106924411e-38 f32.const 0 - i32.const 9 + global.get $std/math/INEXACT + global.get $std/math/UNDERFLOW + i32.or call $std/math/test_tanf i32.eqz if @@ -55636,7 +56738,7 @@ f64.const -8.06684839057968 f64.const -0.999999803096032 f64.const 0.012793331407010555 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55650,7 +56752,7 @@ f64.const 4.345239849338305 f64.const 0.9996636978961307 f64.const 0.1573508232831955 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55664,7 +56766,7 @@ f64.const -8.38143342755525 f64.const -0.9999998950434862 f64.const 0.27985066175460815 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55678,7 +56780,7 @@ f64.const -6.531673581913484 f64.const -0.9999957568392429 f64.const -0.44285574555397034 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55692,7 +56794,7 @@ f64.const 9.267056966972586 f64.const 0.9999999821447234 f64.const 0.4462755024433136 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55706,7 +56808,7 @@ f64.const 0.6619858980995045 f64.const 0.5796835018635275 f64.const 0.4892043173313141 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55720,7 +56822,7 @@ f64.const -0.4066039223853553 f64.const -0.3855853099901652 f64.const 0.35993871092796326 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55734,7 +56836,7 @@ f64.const 0.5617597462207241 f64.const 0.5092819248700439 f64.const -0.39436522126197815 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55748,7 +56850,7 @@ f64.const 0.7741522965913037 f64.const 0.6493374550318555 f64.const -0.4899396002292633 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55762,7 +56864,7 @@ f64.const -0.6787637026394024 f64.const -0.590715084799841 f64.const -0.0145387789234519 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanh i32.eqz if @@ -55815,7 +56917,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const 0 i32.const 0 @@ -55846,7 +56949,7 @@ f32.const -8.066848754882812 f32.const -0.9999998211860657 f32.const -0.3034979999065399 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55860,7 +56963,7 @@ f32.const 4.345239639282227 f32.const 0.9996637105941772 f32.const 0.2154078334569931 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55874,7 +56977,7 @@ f32.const -8.381433486938477 f32.const -0.9999998807907104 f32.const 0.23912210762500763 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55888,7 +56991,7 @@ f32.const -6.531673431396484 f32.const -0.999995768070221 f32.const -0.18844597041606903 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55902,7 +57005,7 @@ f32.const 9.267057418823242 f32.const 1 f32.const 0.1497807800769806 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55916,7 +57019,7 @@ f32.const 0.6619858741760254 f32.const 0.5796834826469421 f32.const -0.05590476095676422 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55930,7 +57033,7 @@ f32.const -0.40660393238067627 f32.const -0.38558530807495117 f32.const 0.349787175655365 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55944,7 +57047,7 @@ f32.const 0.5617597699165344 f32.const 0.5092819333076477 f32.const -0.1528785079717636 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55958,7 +57061,7 @@ f32.const 0.7741522789001465 f32.const 0.6493374705314636 f32.const 0.4317026138305664 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -55972,7 +57075,7 @@ f32.const -0.6787636876106262 f32.const -0.5907150506973267 f32.const 0.4079873859882355 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_tanhf i32.eqz if @@ -56025,7 +57128,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const 0 i32.const 0 @@ -56056,7 +57160,7 @@ f64.const -8.06684839057968 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56070,7 +57174,7 @@ f64.const 4.345239849338305 f64.const 4 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56084,7 +57188,7 @@ f64.const -8.38143342755525 f64.const -8 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56098,7 +57202,7 @@ f64.const -6.531673581913484 f64.const -6 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56112,7 +57216,7 @@ f64.const 9.267056966972586 f64.const 9 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56126,7 +57230,7 @@ f64.const 0.6619858980995045 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56140,7 +57244,7 @@ f64.const -0.4066039223853553 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56154,7 +57258,7 @@ f64.const 0.5617597462207241 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56168,7 +57272,7 @@ f64.const 0.7741522965913037 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56182,7 +57286,7 @@ f64.const -0.6787637026394024 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56221,8 +57325,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const 0 i32.const 0 call $std/math/test_trunc @@ -56294,7 +57400,7 @@ f64.const 0.5 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56308,7 +57414,7 @@ f64.const -0.5 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56322,7 +57428,7 @@ f64.const 1.0000152587890625 f64.const 1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56336,7 +57442,7 @@ f64.const -1.0000152587890625 f64.const -1 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56350,7 +57456,7 @@ f64.const 0.9999923706054688 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56364,7 +57470,7 @@ f64.const -0.9999923706054688 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56378,7 +57484,7 @@ f64.const 7.888609052210118e-31 f64.const 0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56392,7 +57498,7 @@ f64.const -7.888609052210118e-31 f64.const -0 f64.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_trunc i32.eqz if @@ -56406,7 +57512,7 @@ f32.const -8.066848754882812 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56420,7 +57526,7 @@ f32.const 4.345239639282227 f32.const 4 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56434,7 +57540,7 @@ f32.const -8.381433486938477 f32.const -8 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56448,7 +57554,7 @@ f32.const -6.531673431396484 f32.const -6 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56462,7 +57568,7 @@ f32.const 9.267057418823242 f32.const 9 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56476,7 +57582,7 @@ f32.const 0.6619858741760254 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56490,7 +57596,7 @@ f32.const -0.40660393238067627 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56504,7 +57610,7 @@ f32.const 0.5617597699165344 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56518,7 +57624,7 @@ f32.const 0.7741522789001465 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56532,7 +57638,7 @@ f32.const -0.6787636876106262 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56571,8 +57677,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const 0 i32.const 0 call $std/math/test_truncf @@ -56644,7 +57752,7 @@ f32.const 0.5 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56658,7 +57766,7 @@ f32.const -0.5 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56672,7 +57780,7 @@ f32.const 1.0000152587890625 f32.const 1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56686,7 +57794,7 @@ f32.const -1.0000152587890625 f32.const -1 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56700,7 +57808,7 @@ f32.const 0.9999923706054688 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56714,7 +57822,7 @@ f32.const -0.9999923706054688 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56728,7 +57836,7 @@ f32.const 7.888609052210118e-31 f32.const 0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56742,7 +57850,7 @@ f32.const -7.888609052210118e-31 f32.const -0 f32.const 0 - i32.const 1 + global.get $std/math/INEXACT call $std/math/test_truncf i32.eqz if @@ -56987,8 +58095,8 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE + global.get $~lib/builtins/f64.MAX_VALUE call $~lib/math/NativeMath.imul f64.const 0 f64.eq @@ -57131,7 +58239,7 @@ call $~lib/builtins/abort unreachable end - f64.const 9007199254740991 + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER call $~lib/math/NativeMath.clz32 f64.const 0 f64.eq @@ -57144,7 +58252,8 @@ call $~lib/builtins/abort unreachable end - f64.const -9007199254740991 + global.get $~lib/builtins/f64.MAX_SAFE_INTEGER + f64.neg call $~lib/math/NativeMath.clz32 f64.const 31 f64.eq @@ -57157,7 +58266,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE call $~lib/math/NativeMath.clz32 f64.const 32 f64.eq @@ -57170,7 +58279,7 @@ call $~lib/builtins/abort unreachable end - f64.const 5e-324 + global.get $~lib/builtins/f64.MIN_VALUE call $~lib/math/NativeMath.clz32 f64.const 32 f64.eq @@ -57183,7 +58292,8 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE + f64.neg call $~lib/math/NativeMath.clz32 f64.const 32 f64.eq @@ -57196,7 +58306,7 @@ call $~lib/builtins/abort unreachable end - f64.const 2.220446049250313e-16 + global.get $~lib/builtins/f64.EPSILON call $~lib/math/NativeMath.clz32 f64.const 32 f64.eq @@ -57706,7 +58816,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg i32.const 0 call $~lib/math/ipow32f f32.const 1 @@ -57720,10 +58831,12 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg i32.const 1 call $~lib/math/ipow32f - f32.const -inf + f32.const inf + f32.neg f32.eq i32.eqz if @@ -57734,7 +58847,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg i32.const 2 call $~lib/math/ipow32f f32.const inf @@ -57762,7 +58876,7 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE i32.const 2 call $~lib/math/ipow32f f32.const inf @@ -57776,7 +58890,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1.401298464324817e-45 + global.get $~lib/builtins/f32.MIN_VALUE i32.const 2 call $~lib/math/ipow32f f32.const 0 @@ -57790,7 +58904,7 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + global.get $~lib/builtins/f32.MAX_VALUE i32.const -1 call $~lib/math/ipow32f f32.const 2.938735877055719e-39 @@ -57933,7 +59047,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg i32.const 0 call $~lib/math/ipow64f f64.const 1 @@ -57947,10 +59062,12 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg i32.const 1 call $~lib/math/ipow64f - f64.const -inf + f64.const inf + f64.neg f64.eq i32.eqz if @@ -57961,7 +59078,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg i32.const 2 call $~lib/math/ipow64f f64.const inf @@ -57989,7 +59107,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE i32.const 2 call $~lib/math/ipow64f f64.const inf @@ -58003,7 +59121,7 @@ call $~lib/builtins/abort unreachable end - f64.const 5e-324 + global.get $~lib/builtins/f64.MIN_VALUE i32.const 2 call $~lib/math/ipow64f f64.const 0 @@ -58017,7 +59135,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE i32.const -1 call $~lib/math/ipow64f f64.const 5.562684646268003e-309 diff --git a/tests/compiler/std/mod.untouched.wat b/tests/compiler/std/mod.untouched.wat index d488ae7178..4a34255f27 100644 --- a/tests/compiler/std/mod.untouched.wat +++ b/tests/compiler/std/mod.untouched.wat @@ -1281,7 +1281,8 @@ unreachable end f64.const 0 - f64.const -inf + f64.const inf + f64.neg f64.const 0 call $std/mod/test_fmod i32.eqz @@ -1294,7 +1295,8 @@ unreachable end f64.const -0 - f64.const -inf + f64.const inf + f64.neg f64.const -0 call $std/mod/test_fmod i32.eqz @@ -1333,7 +1335,8 @@ unreachable end f64.const 1 - f64.const -inf + f64.const inf + f64.neg f64.const 1 call $std/mod/test_fmod i32.eqz @@ -1346,7 +1349,8 @@ unreachable end f64.const -1 - f64.const -inf + f64.const inf + f64.neg f64.const -1 call $std/mod/test_fmod i32.eqz @@ -1384,7 +1388,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 0 f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1397,7 +1402,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -0 f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1436,7 +1442,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const 1 f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1449,7 +1456,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const -1 f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1475,7 +1483,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1489,7 +1498,8 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 call $std/mod/test_fmod i32.eqz @@ -1501,8 +1511,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg f64.const nan:0x8000000000000 call $std/mod/test_fmod i32.eqz @@ -1527,7 +1539,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 call $std/mod/test_fmod @@ -1554,7 +1567,8 @@ unreachable end f64.const nan:0x8000000000000 - f64.const -inf + f64.const inf + f64.neg f64.const nan:0x8000000000000 call $std/mod/test_fmod i32.eqz @@ -2074,7 +2088,8 @@ unreachable end f32.const 0 - f32.const -inf + f32.const inf + f32.neg f32.const 0 call $std/mod/test_fmodf i32.eqz @@ -2087,7 +2102,8 @@ unreachable end f32.const -0 - f32.const -inf + f32.const inf + f32.neg f32.const -0 call $std/mod/test_fmodf i32.eqz @@ -2126,7 +2142,8 @@ unreachable end f32.const 1 - f32.const -inf + f32.const inf + f32.neg f32.const 1 call $std/mod/test_fmodf i32.eqz @@ -2139,7 +2156,8 @@ unreachable end f32.const -1 - f32.const -inf + f32.const inf + f32.neg f32.const -1 call $std/mod/test_fmodf i32.eqz @@ -2177,7 +2195,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 0 f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2190,7 +2209,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -0 f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2229,7 +2249,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const 1 f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2242,7 +2263,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const -1 f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2268,7 +2290,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2282,7 +2305,8 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 call $std/mod/test_fmodf i32.eqz @@ -2294,8 +2318,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg f32.const nan:0x400000 call $std/mod/test_fmodf i32.eqz @@ -2320,7 +2346,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 f32.const nan:0x400000 call $std/mod/test_fmodf @@ -2347,7 +2374,8 @@ unreachable end f32.const nan:0x400000 - f32.const -inf + f32.const inf + f32.neg f32.const nan:0x400000 call $std/mod/test_fmodf i32.eqz diff --git a/tests/compiler/std/object-literal-omitted.untouched.wat b/tests/compiler/std/object-literal-omitted.untouched.wat index 32ab151c8a..3a4e8e5641 100644 --- a/tests/compiler/std/object-literal-omitted.untouched.wat +++ b/tests/compiler/std/object-literal-omitted.untouched.wat @@ -1415,7 +1415,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1462,12 +1464,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz diff --git a/tests/compiler/std/object-literal-unmanaged.untouched.wat b/tests/compiler/std/object-literal-unmanaged.untouched.wat index fe76b1da78..924f127b68 100644 --- a/tests/compiler/std/object-literal-unmanaged.untouched.wat +++ b/tests/compiler/std/object-literal-unmanaged.untouched.wat @@ -1407,7 +1407,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1493,7 +1495,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else diff --git a/tests/compiler/std/object.untouched.wat b/tests/compiler/std/object.untouched.wat index 17c86a1a96..2de60f8113 100644 --- a/tests/compiler/std/object.untouched.wat +++ b/tests/compiler/std/object.untouched.wat @@ -442,8 +442,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf - f64.const -inf + f64.const inf + f64.neg + f64.const inf + f64.neg call $~lib/object/Object.is i32.const 1 i32.eq @@ -457,7 +459,8 @@ unreachable end f64.const inf - f64.const -inf + f64.const inf + f64.neg call $~lib/object/Object.is i32.const 0 i32.eq @@ -470,7 +473,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg f64.const inf call $~lib/object/Object.is i32.const 0 @@ -624,8 +628,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf - f32.const -inf + f32.const inf + f32.neg + f32.const inf + f32.neg call $~lib/object/Object.is i32.const 1 i32.eq @@ -639,7 +645,8 @@ unreachable end f32.const inf - f32.const -inf + f32.const inf + f32.neg call $~lib/object/Object.is i32.const 0 i32.eq @@ -652,7 +659,8 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const inf + f32.neg f32.const inf call $~lib/object/Object.is i32.const 0 @@ -709,7 +717,9 @@ unreachable end f64.const 0 - f64.const -1e-309 + f64.const 0.1 + f64.const -1e-308 + f64.mul call $~lib/object/Object.is i32.const 0 i32.eq @@ -723,7 +733,9 @@ unreachable end f64.const -0 - f64.const -1e-309 + f64.const 0.1 + f64.const -1e-308 + f64.mul call $~lib/object/Object.is i32.const 0 i32.eq diff --git a/tests/compiler/std/pointer.untouched.wat b/tests/compiler/std/pointer.untouched.wat index 555301f399..c91702a279 100644 --- a/tests/compiler/std/pointer.untouched.wat +++ b/tests/compiler/std/pointer.untouched.wat @@ -1567,6 +1567,8 @@ block $std/pointer/Pointer#get:value|inlined.2 (result i32) global.get $std/pointer/one local.set $0 + i32.const 1 + drop local.get $0 br $std/pointer/Pointer#get:value|inlined.2 end @@ -1585,6 +1587,8 @@ block $std/pointer/Pointer#get:value|inlined.3 (result i32) global.get $std/pointer/one local.set $1 + i32.const 1 + drop local.get $1 br $std/pointer/Pointer#get:value|inlined.3 end @@ -1794,6 +1798,8 @@ block $std/pointer/Pointer#get:value|inlined.4 (result i32) global.get $std/pointer/two local.set $0 + i32.const 1 + drop local.get $0 br $std/pointer/Pointer#get:value|inlined.4 end @@ -1812,6 +1818,8 @@ block $std/pointer/Pointer#get:value|inlined.5 (result i32) global.get $std/pointer/two local.set $6 + i32.const 1 + drop local.get $6 br $std/pointer/Pointer#get:value|inlined.5 end @@ -1875,6 +1883,8 @@ block $std/pointer/Pointer#get:value|inlined.7 (result i32) global.get $std/pointer/one local.set $7 + i32.const 1 + drop local.get $7 br $std/pointer/Pointer#get:value|inlined.7 end @@ -1893,6 +1903,8 @@ block $std/pointer/Pointer#get:value|inlined.8 (result i32) global.get $std/pointer/one local.set $0 + i32.const 1 + drop local.get $0 br $std/pointer/Pointer#get:value|inlined.8 end @@ -2131,6 +2143,8 @@ block $std/pointer/Pointer#get:value|inlined.0 (result f32) global.get $std/pointer/buf local.set $6 + i32.const 0 + drop local.get $6 f32.load br $std/pointer/Pointer#get:value|inlined.0 diff --git a/tests/compiler/std/polyfills.untouched.wat b/tests/compiler/std/polyfills.untouched.wat index 6e3c74795c..966b7ef0aa 100644 --- a/tests/compiler/std/polyfills.untouched.wat +++ b/tests/compiler/std/polyfills.untouched.wat @@ -479,7 +479,11 @@ i32.shl i32.const 24 i32.shr_s - i32.const -86 + i32.const 170 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s i32.eq i32.eqz if @@ -511,7 +515,11 @@ i32.shl i32.const 16 i32.shr_s - i32.const -17494 + i32.const 48042 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.eq i32.eqz if @@ -621,7 +629,11 @@ i32.shl i32.const 24 i32.shr_s - i32.const -86 + i32.const 170 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s i32.eq i32.eqz if @@ -653,7 +665,11 @@ i32.shl i32.const 16 i32.shr_s - i32.const -17494 + i32.const 48042 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.eq i32.eqz if diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index 417c2f7311..64dc49fd23 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -1428,7 +1428,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1477,12 +1479,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -2323,7 +2329,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index 772a7ca083..7a6d33f942 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -2129,7 +2129,7 @@ (func $start:std/static-array (local $0 i32) (local $1 i32) - i32.const 64 + global.get $std/static-array/i call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -2142,7 +2142,7 @@ call $~lib/builtins/abort unreachable end - i32.const 64 + global.get $std/static-array/i i32.const 0 call $~lib/array/Array#__get i32.const 1 @@ -2156,7 +2156,7 @@ call $~lib/builtins/abort unreachable end - i32.const 64 + global.get $std/static-array/i i32.const 1 call $~lib/array/Array#__get i32.const 2 @@ -2184,7 +2184,7 @@ i32.const 0 i32.const 2 call $~lib/array/Array#__set - i32.const 64 + global.get $std/static-array/i i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -2198,7 +2198,7 @@ call $~lib/builtins/abort unreachable end - i32.const 128 + global.get $std/static-array/I call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -2211,7 +2211,7 @@ call $~lib/builtins/abort unreachable end - i32.const 128 + global.get $std/static-array/I i32.const 0 call $~lib/array/Array#__get i64.const 3 @@ -2225,7 +2225,7 @@ call $~lib/builtins/abort unreachable end - i32.const 128 + global.get $std/static-array/I i32.const 1 call $~lib/array/Array#__get i64.const 4 @@ -2243,7 +2243,7 @@ i32.const 0 i64.const 4 call $~lib/array/Array#__set - i32.const 128 + global.get $std/static-array/I i32.const 0 call $~lib/array/Array#__get i64.const 4 @@ -2257,7 +2257,7 @@ call $~lib/builtins/abort unreachable end - i32.const 192 + global.get $std/static-array/f call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -2270,7 +2270,7 @@ call $~lib/builtins/abort unreachable end - i32.const 192 + global.get $std/static-array/f i32.const 0 call $~lib/array/Array#__get f32.const 1.5 @@ -2284,7 +2284,7 @@ call $~lib/builtins/abort unreachable end - i32.const 192 + global.get $std/static-array/f i32.const 1 call $~lib/array/Array#__get f32.const 2.5 @@ -2302,7 +2302,7 @@ i32.const 0 f32.const 2.5 call $~lib/array/Array#__set - i32.const 192 + global.get $std/static-array/f i32.const 0 call $~lib/array/Array#__get f32.const 2.5 @@ -2316,7 +2316,7 @@ call $~lib/builtins/abort unreachable end - i32.const 256 + global.get $std/static-array/F call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -2329,7 +2329,7 @@ call $~lib/builtins/abort unreachable end - i32.const 256 + global.get $std/static-array/F i32.const 0 call $~lib/array/Array#__get f64.const 1.25 @@ -2343,7 +2343,7 @@ call $~lib/builtins/abort unreachable end - i32.const 256 + global.get $std/static-array/F i32.const 1 call $~lib/array/Array#__get f64.const 2.25 @@ -2361,7 +2361,7 @@ i32.const 0 f64.const 2.25 call $~lib/array/Array#__set - i32.const 256 + global.get $std/static-array/F i32.const 0 call $~lib/array/Array#__get f64.const 2.25 diff --git a/tests/compiler/std/staticarray.untouched.wat b/tests/compiler/std/staticarray.untouched.wat index 2289b5b314..7698493990 100644 --- a/tests/compiler/std/staticarray.untouched.wat +++ b/tests/compiler/std/staticarray.untouched.wat @@ -1487,7 +1487,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -2807,12 +2809,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -2896,7 +2902,7 @@ (func $start:std/staticarray (local $0 i32) (local $1 i32) - i32.const 32 + global.get $std/staticarray/arr1 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -2910,7 +2916,7 @@ call $~lib/builtins/abort unreachable end - i32.const 32 + global.get $std/staticarray/arr1 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -2927,7 +2933,7 @@ i32.const 1 i32.const 4 call $~lib/staticarray/StaticArray#__set - i32.const 32 + global.get $std/staticarray/arr1 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -2941,7 +2947,7 @@ call $~lib/builtins/abort unreachable end - i32.const 256 + global.get $std/staticarray/arr2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -2955,7 +2961,7 @@ call $~lib/builtins/abort unreachable end - i32.const 256 + global.get $std/staticarray/arr2 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -2972,7 +2978,7 @@ i32.const 1 i32.const 4 call $~lib/staticarray/StaticArray#__set - i32.const 256 + global.get $std/staticarray/arr2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 4 diff --git a/tests/compiler/std/string-casemapping.untouched.wat b/tests/compiler/std/string-casemapping.untouched.wat index 0d76531b74..41c7e6ce04 100644 --- a/tests/compiler/std/string-casemapping.untouched.wat +++ b/tests/compiler/std/string-casemapping.untouched.wat @@ -218,12 +218,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1656,7 +1660,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1926,7 +1932,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else diff --git a/tests/compiler/std/string-encoding.untouched.wat b/tests/compiler/std/string-encoding.untouched.wat index 5d623f85ed..49ea1dfcdb 100644 --- a/tests/compiler/std/string-encoding.untouched.wat +++ b/tests/compiler/std/string-encoding.untouched.wat @@ -49,12 +49,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -1527,7 +1531,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -4196,7 +4202,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index a091ff60ce..872cdae736 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -413,12 +413,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -2105,7 +2109,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -7237,7 +7243,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -11094,7 +11102,9 @@ end i32.const 1 global.set $~argumentsLength - i32.const 65590 + i32.const 65536 + i32.const 54 + i32.add i32.const 0 call $~lib/string/String.fromCharCode|trampoline local.tee $2 @@ -11181,7 +11191,7 @@ end global.get $std/string/str i32.const 672 - i32.const 536870904 + global.get $~lib/string/String.MAX_LENGTH call $~lib/string/String#endsWith i32.eqz if @@ -11613,7 +11623,7 @@ end i32.const 272 i32.const 272 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf i32.const 0 i32.eq @@ -11628,7 +11638,7 @@ end i32.const 272 i32.const 608 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf i32.const -1 i32.eq @@ -11643,7 +11653,7 @@ end global.get $std/string/str i32.const 272 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf global.get $std/string/str call $~lib/string/String#get:length @@ -11659,7 +11669,7 @@ end global.get $std/string/str i32.const 1056 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf i32.const 2 i32.eq @@ -11674,7 +11684,7 @@ end global.get $std/string/str i32.const 1088 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf i32.const -1 i32.eq @@ -11689,7 +11699,7 @@ end global.get $std/string/str i32.const 1152 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#lastIndexOf i32.const 15 i32.eq @@ -12256,7 +12266,7 @@ i32.const 1904 i32.const 0 call $~lib/number/I32.parseInt - i32.const 2147483647 + global.get $~lib/number/I32.MAX_VALUE i32.eq i32.eqz if @@ -12270,7 +12280,7 @@ i32.const 1952 i32.const 0 call $~lib/number/I64.parseInt - i64.const 9223372036854775807 + global.get $~lib/number/I64.MAX_VALUE i64.eq i32.eqz if @@ -13561,7 +13571,7 @@ end i32.const 5312 call $~lib/string/parseFloat - f64.const 2.220446049250313e-16 + global.get $~lib/builtins/f64.EPSILON f64.eq i32.eqz if @@ -13574,7 +13584,7 @@ end i32.const 5376 call $~lib/string/parseFloat - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE f64.eq i32.eqz if @@ -13587,7 +13597,7 @@ end i32.const 5440 call $~lib/string/parseFloat - f64.const 5e-324 + global.get $~lib/builtins/f64.MIN_VALUE f64.eq i32.eqz if @@ -13665,7 +13675,8 @@ end i32.const 5760 call $~lib/string/parseFloat - f64.const -inf + f64.const inf + f64.neg f64.eq i32.eqz if @@ -13743,7 +13754,8 @@ end i32.const 6016 call $~lib/string/parseFloat - f64.const -inf + f64.const inf + f64.neg f64.eq i32.eqz if @@ -13837,7 +13849,7 @@ end i32.const 6448 call $~lib/string/parseFloat - f64.const 1e-323 + global.get $std/string/Ox1p_1073 f64.eq i32.eqz if @@ -13850,7 +13862,7 @@ end i32.const 6640 call $~lib/string/parseFloat - f64.const 2.225073858507202e-308 + global.get $std/string/Ox1_0000000000001p_1022 f64.eq i32.eqz if @@ -13875,7 +13887,7 @@ call $~lib/string/String.__concat local.tee $36 call $~lib/string/parseFloat - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE f64.eq i32.eqz if @@ -15349,7 +15361,7 @@ global.set $std/string/str global.get $std/string/str i32.const 0 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#slice local.tee $80 i32.const 11776 @@ -15365,7 +15377,7 @@ end global.get $std/string/str i32.const -1 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#slice local.tee $81 i32.const 11824 @@ -15381,7 +15393,7 @@ end global.get $std/string/str i32.const -5 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#slice local.tee $82 i32.const 11856 @@ -15461,7 +15473,7 @@ end global.get $std/string/str i32.const 0 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substr local.tee $87 i32.const 11776 @@ -15477,7 +15489,7 @@ end global.get $std/string/str i32.const -1 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substr local.tee $88 i32.const 11824 @@ -15493,7 +15505,7 @@ end global.get $std/string/str i32.const -5 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substr local.tee $89 i32.const 11856 @@ -15621,7 +15633,7 @@ end global.get $std/string/str i32.const 0 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substring local.tee $97 i32.const 11776 @@ -15637,7 +15649,7 @@ end global.get $std/string/str i32.const -1 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substring local.tee $98 i32.const 11776 @@ -15653,7 +15665,7 @@ end global.get $std/string/str i32.const -5 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#substring local.tee $99 i32.const 11776 @@ -16989,7 +17001,7 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + global.get $~lib/builtins/u32.MAX_VALUE call $~lib/util/number/utoa32 local.tee $128 i32.const 13536 @@ -17283,7 +17295,7 @@ call $~lib/builtins/abort unreachable end - i64.const -1 + global.get $~lib/builtins/u64.MAX_VALUE call $~lib/util/number/utoa64 local.tee $149 i32.const 14192 @@ -17437,7 +17449,7 @@ call $~lib/builtins/abort unreachable end - i64.const 9223372036854775807 + global.get $~lib/builtins/i64.MAX_VALUE call $~lib/util/number/itoa64 local.tee $160 i32.const 14544 @@ -17451,7 +17463,7 @@ call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 + global.get $~lib/builtins/i64.MIN_VALUE call $~lib/util/number/itoa64 local.tee $161 i32.const 14608 @@ -17521,7 +17533,8 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const inf + f64.neg call $~lib/util/number/dtoa local.tee $166 i32.const 6016 @@ -17535,7 +17548,7 @@ call $~lib/builtins/abort unreachable end - f64.const 2.220446049250313e-16 + global.get $~lib/builtins/f64.EPSILON call $~lib/util/number/dtoa local.tee $167 i32.const 5312 @@ -17549,7 +17562,8 @@ call $~lib/builtins/abort unreachable end - f64.const -2.220446049250313e-16 + global.get $~lib/builtins/f64.EPSILON + f64.neg call $~lib/util/number/dtoa local.tee $168 i32.const 15648 @@ -17563,7 +17577,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE call $~lib/util/number/dtoa local.tee $169 i32.const 5376 @@ -17577,7 +17591,8 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 + global.get $~lib/builtins/f64.MAX_VALUE + f64.neg call $~lib/util/number/dtoa local.tee $170 i32.const 15712 @@ -18039,7 +18054,9 @@ call $~lib/builtins/abort unreachable end - f64.const 0.3333333333333333 + f64.const 1 + f64.const 3 + f64.div call $~lib/util/number/dtoa local.tee $203 i32.const 16928 diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index f13ff4263d..56a04d6cac 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -1608,7 +1608,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1870,12 +1872,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz @@ -2283,7 +2289,7 @@ local.get $1 i32.load offset=8 local.get $0 - i32.const 1 + global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2328,7 +2334,7 @@ local.get $2 i32.load offset=8 local.get $0 - i32.const 1 + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2373,7 +2379,7 @@ local.get $3 i32.load offset=8 local.get $0 - i32.const 1 + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2418,7 +2424,7 @@ local.get $4 i32.load offset=8 local.get $0 - i32.const 2 + global.get $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2463,7 +2469,7 @@ local.get $5 i32.load offset=8 local.get $0 - i32.const 2 + global.get $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2508,7 +2514,7 @@ local.get $6 i32.load offset=8 local.get $0 - i32.const 4 + global.get $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2553,7 +2559,7 @@ local.get $7 i32.load offset=8 local.get $0 - i32.const 4 + global.get $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2598,7 +2604,7 @@ local.get $8 i32.load offset=8 local.get $0 - i32.const 8 + global.get $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2643,7 +2649,7 @@ local.get $9 i32.load offset=8 local.get $0 - i32.const 8 + global.get $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2688,7 +2694,7 @@ local.get $10 i32.load offset=8 local.get $0 - i32.const 4 + global.get $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -2733,7 +2739,7 @@ local.get $11 i32.load offset=8 local.get $0 - i32.const 8 + global.get $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT i32.mul i32.eq i32.eqz @@ -3189,7 +3195,9 @@ if (result i32) local.get $1 i32.load offset=4 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eqz else @@ -24602,7 +24610,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Int8Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -24617,7 +24627,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Int8Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -24677,7 +24689,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Int8Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -25285,7 +25299,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Uint8Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -25300,7 +25316,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Uint8Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -25360,7 +25378,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Uint8Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -25968,7 +25988,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -25983,7 +26005,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -26043,7 +26067,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -26657,7 +26683,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Int16Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -26672,7 +26700,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Int16Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -26732,7 +26762,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Int16Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -27340,7 +27372,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Uint16Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -27355,7 +27389,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Uint16Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -27415,7 +27451,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Uint16Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -28017,7 +28055,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Int32Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -28032,7 +28072,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Int32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -28092,7 +28134,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Int32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -28694,7 +28738,9 @@ i32.const 4 i32.const 0 call $~lib/typedarray/Uint32Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -28709,7 +28755,9 @@ i32.const 5 i32.const 0 call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -28769,7 +28817,9 @@ i32.const 5 i32.const 1 call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -29372,7 +29422,9 @@ i64.const 4 i32.const 0 call $~lib/typedarray/Int64Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -29387,7 +29439,9 @@ i64.const 5 i32.const 0 call $~lib/typedarray/Int64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -29447,7 +29501,9 @@ i64.const 5 i32.const 1 call $~lib/typedarray/Int64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -30050,7 +30106,9 @@ i64.const 4 i32.const 0 call $~lib/typedarray/Uint64Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -30065,7 +30123,9 @@ i64.const 5 i32.const 0 call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -30125,7 +30185,9 @@ i64.const 5 i32.const 1 call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -30728,7 +30790,9 @@ f32.const 4 i32.const 0 call $~lib/typedarray/Float32Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -30743,7 +30807,9 @@ f32.const 5 i32.const 0 call $~lib/typedarray/Float32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -30803,7 +30869,9 @@ f32.const 5 i32.const 1 call $~lib/typedarray/Float32Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -31406,7 +31474,9 @@ f64.const 4 i32.const 0 call $~lib/typedarray/Float64Array#indexOf - i32.const 0 + i32.const 4 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -31421,7 +31491,9 @@ f64.const 5 i32.const 0 call $~lib/typedarray/Float64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -31481,7 +31553,9 @@ f64.const 5 i32.const 1 call $~lib/typedarray/Float64Array#indexOf - i32.const 1 + i32.const 5 + i32.const 4 + i32.sub i32.eq i32.eqz if @@ -54014,6 +54088,50 @@ (local $24 i32) (local $25 i32) (local $26 i32) + global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT + i32.const 1 + i32.eq + drop + global.get $~lib/typedarray/Int16Array.BYTES_PER_ELEMENT + i32.const 2 + i32.eq + drop + global.get $~lib/typedarray/Uint16Array.BYTES_PER_ELEMENT + i32.const 2 + i32.eq + drop + global.get $~lib/typedarray/Int32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Uint32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Int64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop + global.get $~lib/typedarray/Uint64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop + global.get $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT + i32.const 4 + i32.eq + drop + global.get $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT + i32.const 8 + i32.eq + drop i32.const 0 call $std/typedarray/testInstantiate i32.const 5 @@ -54062,7 +54180,9 @@ end local.get $0 i32.load offset=8 - i32.const 12 + i32.const 3 + i32.const 4 + i32.mul i32.eq i32.eqz if @@ -54139,7 +54259,9 @@ end local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 i32.const 4 + i32.mul i32.eq i32.eqz if @@ -54152,7 +54274,9 @@ end local.get $0 i32.load offset=8 + i32.const 1 i32.const 4 + i32.mul i32.eq i32.eqz if @@ -54239,7 +54363,9 @@ end local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 16 + i32.const 2 + i32.const 8 + i32.mul i32.eq i32.eqz if @@ -54252,7 +54378,9 @@ end local.get $0 i32.load offset=8 - i32.const 32 + i32.const 4 + i32.const 8 + i32.mul i32.eq i32.eqz if @@ -54790,7 +54918,9 @@ end local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 i32.const 4 + i32.mul i32.eq i32.eqz if @@ -54803,7 +54933,9 @@ end local.get $8 i32.load offset=8 - i32.const 12 + i32.const 3 + i32.const 4 + i32.mul i32.eq i32.eqz if @@ -55110,7 +55242,7 @@ local.get $3 i32.const 0 i32.const 3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $0 i32.const 5 @@ -55142,7 +55274,7 @@ local.get $3 i32.const 1 i32.const 3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $2 i32.const 5 @@ -55174,7 +55306,7 @@ local.get $3 i32.const 1 i32.const 2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $9 i32.const 5 @@ -55206,7 +55338,7 @@ local.get $3 i32.const 2 i32.const 2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $1 i32.const 5 @@ -55334,7 +55466,7 @@ local.get $3 i32.const 0 i32.const -2 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $15 i32.const 5 @@ -55462,7 +55594,7 @@ local.get $3 i32.const -4 i32.const -3 - i32.const 2147483647 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/typedarray/Int32Array#copyWithin local.tee $23 i32.const 5 diff --git a/tests/compiler/tablebase.untouched.wat b/tests/compiler/tablebase.untouched.wat index 8d8e75f304..3245a33c27 100644 --- a/tests/compiler/tablebase.untouched.wat +++ b/tests/compiler/tablebase.untouched.wat @@ -6,7 +6,21 @@ (global $tablebase/staticFunction i32 (i32.const 32)) (global $~lib/ASC_TABLE_BASE i32 (i32.const 32)) (export "memory" (memory $0)) + (start $~start) (func $tablebase/foo nop ) + (func $start:tablebase + i32.const 32 + i32.const 32 + i32.eq + drop + global.get $tablebase/staticFunction + i32.const 32 + i32.eq + drop + ) + (func $~start + call $start:tablebase + ) ) diff --git a/tests/compiler/typeof.untouched.wat b/tests/compiler/typeof.untouched.wat index 3c109c8308..bfbf5d1517 100644 --- a/tests/compiler/typeof.untouched.wat +++ b/tests/compiler/typeof.untouched.wat @@ -371,6 +371,12 @@ local.get $0 ) (func $start:typeof + i32.const 1 + drop + i32.const 32 + i32.const 32 + i32.eq + drop i32.const 64 i32.const 64 call $~lib/string/String.__eq @@ -431,6 +437,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop i32.const 176 i32.const 176 call $~lib/string/String.__eq @@ -455,6 +463,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -467,6 +477,8 @@ call $~lib/builtins/abort unreachable end + f64.const 1 + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -479,6 +491,8 @@ call $~lib/builtins/abort unreachable end + i64.const 1 + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -491,6 +505,8 @@ call $~lib/builtins/abort unreachable end + i32.const 208 + drop i32.const 240 i32.const 240 call $~lib/string/String.__eq @@ -503,6 +519,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/b + drop i32.const 176 i32.const 176 call $~lib/string/String.__eq @@ -515,6 +533,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/i + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -527,6 +547,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/f + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -539,6 +561,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/I + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -551,6 +575,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/F + drop i32.const 32 i32.const 32 call $~lib/string/String.__eq @@ -563,6 +589,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/s + drop i32.const 240 i32.const 240 call $~lib/string/String.__eq @@ -575,6 +603,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/fn + drop i32.const 144 i32.const 144 call $~lib/string/String.__eq @@ -600,6 +630,8 @@ i32.const 0 call $typeof/SomeClass#constructor global.set $typeof/c + global.get $typeof/c + drop i32.const 64 i32.const 64 call $~lib/string/String.__eq @@ -636,6 +668,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/c + drop i32.const 272 i32.const 272 call $~lib/string/String.__eq @@ -648,6 +682,8 @@ call $~lib/builtins/abort unreachable end + global.get $typeof/c + drop i32.const 272 i32.const 272 call $~lib/string/String.__eq diff --git a/tests/compiler/wasi/snapshot_preview1.untouched.wat b/tests/compiler/wasi/snapshot_preview1.untouched.wat index 8f2d960b84..0f7cccfc5b 100644 --- a/tests/compiler/wasi/snapshot_preview1.untouched.wat +++ b/tests/compiler/wasi/snapshot_preview1.untouched.wat @@ -10,16 +10,182 @@ (export "memory" (memory $0)) (start $~start) (func $start:wasi/snapshot_preview1 + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 20 + i32.const 20 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 10 + i32.const 10 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 32 + i32.const 32 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 2 + i32.const 2 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 32 + i32.const 32 + i32.eq + drop + i32.const 40 + i32.const 40 + i32.eq + drop + i32.const 48 + i32.const 48 + i32.eq + drop + i32.const 56 + i32.const 56 + i32.eq + drop + i32.const 64 + i32.const 64 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop i32.const 0 global.get $~lib/shared/target/Target.WASM32 i32.eq drop - nop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 24 + i32.const 24 + i32.eq + drop + i32.const 32 + i32.const 32 + i32.eq + drop + i32.const 40 + i32.const 40 + i32.eq + drop + i32.const 48 + i32.const 48 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 16 + i32.const 16 + i32.eq + drop + i32.const 20 + i32.const 20 + i32.eq + drop + i32.const 0 + i32.const 0 + i32.eq + drop i32.const 0 global.get $~lib/shared/target/Target.WASM32 i32.eq drop - nop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop i32.const 9 global.set $wasi/snapshot_preview1/sig ) diff --git a/tests/compiler/while.untouched.wat b/tests/compiler/while.untouched.wat index 4006f9627b..76367f1ad1 100644 --- a/tests/compiler/while.untouched.wat +++ b/tests/compiler/while.untouched.wat @@ -1865,7 +1865,9 @@ drop local.get $4 i32.load - i32.const -4 + i32.const 3 + i32.const -1 + i32.xor i32.and local.get $3 i32.ge_u @@ -1914,12 +1916,16 @@ i32.load offset=4 local.set $1 local.get $1 - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and local.get $1 i32.const 1 i32.add - i32.const -268435456 + i32.const 268435455 + i32.const -1 + i32.xor i32.and i32.eq i32.eqz From 91b8f4ee4936eafcf4e3fe560cd9ac3da635ace6 Mon Sep 17 00:00:00 2001 From: dcode Date: Sun, 26 Apr 2020 02:24:55 +0200 Subject: [PATCH 5/5] update --- package-lock.json | 61 +++++++++++++++++++++-------------------------- package.json | 10 ++++---- src/builtins.ts | 14 +++++------ 3 files changed, 39 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index d0e82adf0f..7670196064 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,9 +25,9 @@ } }, "@types/node": { - "version": "13.11.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.1.tgz", - "integrity": "sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g==", + "version": "13.13.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.2.tgz", + "integrity": "sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A==", "dev": true }, "@webassemblyjs/ast": { @@ -224,9 +224,9 @@ "dev": true }, "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -566,9 +566,9 @@ "dev": true }, "binaryen": { - "version": "92.0.0-nightly.20200422", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-92.0.0-nightly.20200422.tgz", - "integrity": "sha512-Cx3tPXCwTGdnPQ4JtZR0Jrv9GZqHUwp+6jMP6l2kqAT06kzh+6g3/K0ZsEBqq3CuzJ2kvKK7/BXSZcZZRdTWMg==" + "version": "92.0.0-nightly.20200426", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-92.0.0-nightly.20200426.tgz", + "integrity": "sha512-e9aKrfV8MBFjLBITaY89/ulGhZ0AQ9RDb0B4ZGg7Qe3fM445JNiQh6Dc2k0+wTAU95oUAY0uGnNEIGUtEnirag==" }, "bindings": { "version": "1.5.0", @@ -2932,18 +2932,11 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } + "minimist": "^1.2.5" } }, "move-concurrently": { @@ -2967,9 +2960,9 @@ "dev": true }, "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", "dev": true, "optional": true }, @@ -3914,9 +3907,9 @@ } }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -4063,9 +4056,9 @@ "dev": true }, "terser": { - "version": "4.6.11", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.11.tgz", - "integrity": "sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA==", + "version": "4.6.12", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.12.tgz", + "integrity": "sha512-fnIwuaKjFPANG6MAixC/k1TDtnl1YlPLUlLVIxxGZUn1gfUx2+l3/zGNB72wya+lgsb50QBi2tUV75RiODwnww==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4415,16 +4408,16 @@ } }, "webpack": { - "version": "4.42.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.1.tgz", - "integrity": "sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", + "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/wasm-edit": "1.9.0", "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.2.1", + "acorn": "^6.4.1", "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", @@ -4441,7 +4434,7 @@ "schema-utils": "^1.0.0", "tapable": "^1.1.3", "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.0", + "watchpack": "^1.6.1", "webpack-sources": "^1.4.1" }, "dependencies": { diff --git a/package.json b/package.json index 40e2a44efc..7ca4ff1230 100644 --- a/package.json +++ b/package.json @@ -21,23 +21,23 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "92.0.0-nightly.20200422", + "binaryen": "92.0.0-nightly.20200426", "long": "^4.0.0", - "source-map-support": "^0.5.16", + "source-map-support": "^0.5.19", "ts-node": "^6.2.0" }, "devDependencies": { - "@types/node": "^13.11.1", + "@types/node": "^13.13.2", "browser-process-hrtime": "^1.0.0", "diff": "^4.0.2", "glob": "^7.1.6", "physical-cpu-count": "^2.0.0", - "source-map-support": "^0.5.16", + "source-map-support": "^0.5.19", "ts-loader": "^6.2.2", "ts-node": "^6.2.0", "tslint": "^5.20.1", "typescript": "^3.8.3", - "webpack": "^4.42.1", + "webpack": "^4.43.0", "webpack-cli": "^3.3.11" }, "main": "index.js", diff --git a/src/builtins.ts b/src/builtins.ts index d603217a5d..b5e9856635 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -2690,29 +2690,29 @@ function builtin_assert(ctx: BuiltinContext): ExpressionRef { } // omit if the assertion can be proven statically - var precomp = module.runExpression(arg0, ExpressionRunnerFlags.Default); - if (precomp) { - switch (getExpressionType(precomp)) { + var evaled = module.runExpression(arg0, ExpressionRunnerFlags.Default); + if (evaled) { + switch (getExpressionType(evaled)) { case NativeType.I32: { - if (getConstValueI32(precomp)) { + if (getConstValueI32(evaled)) { return arg0; } break; } case NativeType.I64: { - if (getConstValueI64Low(precomp) | getConstValueI64High(precomp)) { + if (getConstValueI64Low(evaled) | getConstValueI64High(evaled)) { return arg0; } break; } case NativeType.F32: { - if (getConstValueF32(precomp)) { + if (getConstValueF32(evaled)) { return arg0; } break; } case NativeType.F64: { - if (getConstValueF64(precomp)) { + if (getConstValueF64(evaled)) { return arg0; } break;